Re: [n00b] what's a smooth_draw_box?

2007-12-18 Thread Tomas Carnecky
Daniel Fetchinson wrote:
 Hi list,
 
 I've just started with GTK and been going through the tutorial and
 examples. My first small application is working all right but the
 following (I guess) warning keeps being written to the console:
 
 CRITICAL **: smooth_draw_box: assertion `width = -1'
 
 and strangely enough Google doesn't return any pages for the queries
 
 http://www.google.com/search?q=smooth_draw_box+site%3Agtk.org
 http://www.google.com/search?q=smooth_draw_box+site%3Alibrary.gnome.org
 

Try dropping the 'site:gtk.org' part, you'll get lots of hits.

tom
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


posting rules regarding text format

2007-12-18 Thread Patrick
I have not been able to post a message today. I tried three times. The 
message concerned a website. The email was sent as text but contained a 
hyperlink I guess that's not good. I also tried after removing the 
_W_W_W but my message did not post.

I visited the gtk site to review the rules but did not see something 
applicable

Could someone tell me some other reasons why I would be blocked.

Thanks in advance-patrick
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Michael McCann
I've got a multithreaded GTK application. One thread runs gtk_main():

gtk_threads_enter();
gtk_main();
gtk_threads_leave();

The other thread is an infinite loop that sleeps for one second on each 
loop. Every x seconds, the infinite loop calls a function, which makes 
some GDK calls. At the beginning of this function, gdk_threads_enter() 
is called; at the end, gdk_flush() and gdk_threads_leave() is called.

Whenever this function is called, the UI freezes and CPU usage jumps to 
100% for about one second (no other applications freeze, of course). 
I've tried calling gdk_threads_leave()/enter() before and after each GDK 
call to no avail. I run g_thread_init() and gdk_threads_init() at the 
beginning of my program.

In the function, gdk_screen_get_default(), gdk_screen_get_root_window(), 
gdk_pixbuf_get_from_drawable(), and gdk_pixbuf_save_to_bufferv() are 
called.

I'm using NetBSD on a P4 1.2GHz. What am I doing wrong? I've asked this 
question on IRC (irc.gnome.org, #gtk+) but noone seems to know the problem.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread G Hasse
On Tue, Dec 18, 2007 at 04:45:50PM -0500, Michael McCann wrote:
 I've got a multithreaded GTK application. One thread runs gtk_main():
 
 gtk_threads_enter();
 gtk_main();
 gtk_threads_leave();

 
 The other thread is an infinite loop that sleeps for one second on each 
 loop. Every x seconds, the infinite loop calls a function, which makes 
 some GDK calls. At the beginning of this function, gdk_threads_enter() 
 is called; at the end, gdk_flush() and gdk_threads_leave() is called.
 
 Whenever this function is called, the UI freezes and CPU usage jumps to 
 100% for about one second (no other applications freeze, of course). 
 I've tried calling gdk_threads_leave()/enter() before and after each GDK 
 call to no avail. I run g_thread_init() and gdk_threads_init() at the 
 beginning of my program.
 
 In the function, gdk_screen_get_default(), gdk_screen_get_root_window(), 
 gdk_pixbuf_get_from_drawable(), and gdk_pixbuf_save_to_bufferv() are 
 called.
 
 I'm using NetBSD on a P4 1.2GHz. What am I doing wrong? I've asked this 
 question on IRC (irc.gnome.org, #gtk+) but noone seems to know the problem.

The wrong thing is trying to do threads!

Why Why Why are all people doing this thread programing! 
I am convinced that with a propper design of your application,
maybe in several processe, you don't need threads and your
problem will go away...

 ___
 gtk-app-devel-list mailing list
 gtk-app-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

-- 
Göran Hasse


Göran Hasseemail: [EMAIL PROTECTED] Tel: 08-6949270
Raditex AB http://www.raditex.se
Planiavägen 15, 1tr Mob: 070-5530148
131 34  NACKA, SWEDEN OrgNr: 556240-0589
VAT: SE556240058901
--

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Michael R. Head

On Tue, 2007-12-18 at 16:45 -0500, Michael McCann wrote:
 I've got a multithreaded GTK application. One thread runs gtk_main():
 
 gtk_threads_enter();
 gtk_main();
 gtk_threads_leave();

I assume you meant


g_threads_init();
gdk_threads_init();
gtk_init();

gdk_threads_enter();
gtk_main();
gdk_threads_leave();

right?

 The other thread is an infinite loop that sleeps for one second on each 
 loop. Every x seconds, the infinite loop calls a function, which makes 
 some GDK calls. At the beginning of this function, gdk_threads_enter() 
 is called; at the end, gdk_flush() and gdk_threads_leave() is called.
 
 Whenever this function is called, the UI freezes and CPU usage jumps to 
 100% for about one second (no other applications freeze, of course). 
 I've tried calling gdk_threads_leave()/enter() before and after each GDK 
 call to no avail. I run g_thread_init() and gdk_threads_init() at the 
 beginning of my program.
 
 In the function, gdk_screen_get_default(), gdk_screen_get_root_window(), 
 gdk_pixbuf_get_from_drawable(), and gdk_pixbuf_save_to_bufferv() are 
 called.
 
 I'm using NetBSD on a P4 1.2GHz. What am I doing wrong? I've asked this 
 question on IRC (irc.gnome.org, #gtk+) but noone seems to know the problem.
 ___
 gtk-app-devel-list mailing list
 gtk-app-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
 
-- 
Michael R. Head [EMAIL PROTECTED]
http://www.suppressingfire.org/~burner/
http://suppressingfire.livejournal.com
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: make a window without the title bar

2007-12-18 Thread Andrew Cowie
On Fri, 2007-12-14 at 20:52 +0800, Binary Chen wrote:
 I know it is a feature of window manager, but is there any portable way
 in GTK+ to do this?

In C...

gtk_window_set_decorated(GTK_WINDOW(window), FALSE);

or Python...

window.set_decorated(False);

or Java...

window.setDecorated(false);

etc :)

As you noted in your question, this is a *request*. The window manager
may choose to ignore you.

AfC
Sydney


___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Michael R. Head

On Tue, 2007-12-18 at 17:14 -0500, Michael R. Head wrote:
 On Tue, 2007-12-18 at 16:45 -0500, Michael McCann wrote:
  I've got a multithreaded GTK application. One thread runs gtk_main():
  
  gtk_threads_enter();
  gtk_main();
  gtk_threads_leave();
 
 I assume you meant
 
 
 g_threads_init();
 gdk_threads_init();
 gtk_init();
 
 gdk_threads_enter();
 gtk_main();
 gdk_threads_leave();
 
 right?

  The other thread is an infinite loop that sleeps for one second on each 
  loop. Every x seconds, the infinite loop calls a function, which makes 
  some GDK calls. At the beginning of this function, gdk_threads_enter() 
  is called; at the end, gdk_flush() and gdk_threads_leave() is called.
  
  Whenever this function is called, the UI freezes and CPU usage jumps to 
  100% for about one second (no other applications freeze, of course). 
  I've tried calling gdk_threads_leave()/enter() before and after each GDK 
  call to no avail. I run g_thread_init() and gdk_threads_init() at the 
  beginning of my program.

Does your special function take time to do its job? If so, then that
would be why. For example:

...
while(1) {
gdk_threads_enter();
sleep(1)
gdk_threads_leave();
sleep(10)
};
...

you'd freeze your app for a second every 10 seconds.


  In the function, gdk_screen_get_default(), gdk_screen_get_root_window(), 
  gdk_pixbuf_get_from_drawable(), and gdk_pixbuf_save_to_bufferv() are 
  called.
  
  I'm using NetBSD on a P4 1.2GHz. What am I doing wrong? I've asked this 
  question on IRC (irc.gnome.org, #gtk+) but noone seems to know the problem.
  ___
-- 
Michael R. Head [EMAIL PROTECTED]
http://www.suppressingfire.org/~burner/
http://suppressingfire.livejournal.com
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

App blueprint, advice please!

2007-12-18 Thread Patrick
Thanks yet again to all for your help with this thread!

and special thanks to John, Nicola, Dan, Gian, Lance and Reed for 
yesterdays posts.

This is awesome!

I was inspired by Göran's advice to promote selling code not software.

I had an idea for the project name yesterday so I registered a couple of 
domain names.

code-read-dot-org (code-red,  as in I read the code, get it??)

In the next 4-6 weeks I hope to upload diagrams of the proposed 
infrastructure and I would like to create a login page were I can post 
information to those who are interested in this project. Information 
such as competitors screenshots. I thought the login might be wise as I 
am not sure of the legality of openly posting this material.

I will layout the technical challenges to this project, source code I 
have already collected and a proposal for a business outline.

Thanks so much, this project has taken a quantum leap forward in a few 
days-Patrick
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Michael McCann
Michael R. Head wrote:
 On Tue, 2007-12-18 at 17:14 -0500, Michael R. Head wrote:
   
 I assume you meant

 g_threads_init();
 gdk_threads_init();
 gtk_init();
 
 gdk_threads_enter();
 gtk_main();
 gdk_threads_leave();

 right?
 
Yes, that is correct. :)

 Does your special function take time to do its job? If so, then that
 would be why. For example:

 ...
 while(1) {
 gdk_threads_enter();
 sleep(1)
 gdk_threads_leave();
 sleep(10)
 };
 ...

 you'd freeze your app for a second every 10 seconds.


   

Ahh, ok. How else can I accomplish my goal, then? I need to give GTK the 
lock, as I'm calling GDK from another function not in the main GTK loop. 
I tried leaving out gdk_threads_enter()/leave() in the CPU-intensive 
function, but X gives me errors.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Tomas Carnecky
Michael McCann wrote:
 Michael R. Head wrote:
 On Tue, 2007-12-18 at 17:14 -0500, Michael R. Head wrote:
   
 I assume you meant

 g_threads_init();
 gdk_threads_init();
 gtk_init();
 
 gdk_threads_enter();
 gtk_main();
 gdk_threads_leave();

 right?
 
 Yes, that is correct. :)
 Does your special function take time to do its job? If so, then that
 would be why. For example:

 ...
 while(1) {
 gdk_threads_enter();
 sleep(1)
 gdk_threads_leave();
 sleep(10)
 };
 ...

 you'd freeze your app for a second every 10 seconds.


   
 
 Ahh, ok. How else can I accomplish my goal, then? I need to give GTK the 

Which goal? Describe what your app is supposed to do.

 lock, as I'm calling GDK from another function not in the main GTK loop. 
 I tried leaving out gdk_threads_enter()/leave() in the CPU-intensive 
 function, but X gives me errors.

tom
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Michael McCann
Tomas Carnecky wrote:
 Michael McCann wrote:
 Michael R. Head wrote:
 On Tue, 2007-12-18 at 17:14 -0500, Michael R. Head wrote:
  
 I assume you meant

 g_threads_init();
 gdk_threads_init();
 gtk_init();
 gdk_threads_enter();
 gtk_main();
 gdk_threads_leave();

 right?
 
 Yes, that is correct. :)
 Does your special function take time to do its job? If so, then that
 would be why. For example:

 ...
 while(1) {
 gdk_threads_enter();
 sleep(1)
 gdk_threads_leave();
 sleep(10)
 };
 ...

 you'd freeze your app for a second every 10 seconds.


   

 Ahh, ok. How else can I accomplish my goal, then? I need to give GTK the 

 Which goal? Describe what your app is supposed to do.

 tom

I want to fix the issue of the UI freezing when the CPU-intensive 
function, which is on a separate thread and calls GDK, is executed.

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Michael R. Head

On Tue, 2007-12-18 at 18:46 -0500, Michael McCann wrote:
 
 Ahh, ok. How else can I accomplish my goal, then? I need to give GTK the 
 lock, as I'm calling GDK from another function not in the main GTK loop. 
 I tried leaving out gdk_threads_enter()/leave() in the CPU-intensive 
 function, but X gives me errors.

Well, I guess what you need to do is to separate out the CPU intensive
bits of the function from the widget manipulation bits...

my_function() {
compute_real_hard();

gdk_threads_enter();
update_ui();
gdk_threads_leave();

}

Or something like that.

mike

-- 
Michael R. Head [EMAIL PROTECTED]
suppressingfire.org

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Michael R. Head
I'll break protocol and reply to my own message _again_...

On Tue, 2007-12-18 at 19:05 -0500, Michael R. Head wrote:
 On Tue, 2007-12-18 at 18:46 -0500, Michael McCann wrote:
  
  Ahh, ok. How else can I accomplish my goal, then? I need to give GTK the 
  lock, as I'm calling GDK from another function not in the main GTK loop. 
  I tried leaving out gdk_threads_enter()/leave() in the CPU-intensive 
  function, but X gives me errors.
 
 Well, I guess what you need to do is to separate out the CPU intensive
 bits of the function from the widget manipulation bits...
 
 my_function() {
 compute_real_hard();
 
 gdk_threads_enter();
 update_ui();
 gdk_threads_leave();
 
 }
 
 Or something like that.

Also, you can skip using gdk_threads_enter() and gdk_threads_leave() if
you instead use g_idle_add(update_ui) and make update_ui a suitable
callback:

http://library.gnome.org/devel/glib/stable/glib-The-Main-Event-Loop.html#g-idle-add

mike

 mike
 
-- 
Michael R. Head [EMAIL PROTECTED]
suppressingfire.org

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Brian J. Tarricone
Michael McCann wrote:
 Michael R. Head wrote:
 Does your special function take time to do its job? If so, then that
 would be why. For example:

 ...
 while(1) {
 gdk_threads_enter();
 sleep(1)
 gdk_threads_leave();
 sleep(10)
 };
 ...

 you'd freeze your app for a second every 10 seconds.
 
 Ahh, ok. How else can I accomplish my goal, then? I need to give GTK the 
 lock, as I'm calling GDK from another function not in the main GTK loop. 
 I tried leaving out gdk_threads_enter()/leave() in the CPU-intensive 
 function, but X gives me errors.

Don't use gdk in the CPU-intensive function:

while(1) {
 sleep(1);
 do_time_consuming_task();
 gdk_threads_enter();
 update_ui();
 gdk_threads_leave();

}

You may need to factor out some code, but this is the right (read: only) 
way to do it if you don't want to block the UI.

-brian
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread G Hasse
On Tue, Dec 18, 2007 at 07:05:18PM -0500, Michael McCann wrote:
 Tomas Carnecky wrote:
  Michael McCann wrote:
  Michael R. Head wrote:
  On Tue, 2007-12-18 at 17:14 -0500, Michael R. Head wrote:
   
  I assume you meant
 
  g_threads_init();
  gdk_threads_init();
  gtk_init();
  gdk_threads_enter();
  gtk_main();
  gdk_threads_leave();
 
  right?
  
  Yes, that is correct. :)
  Does your special function take time to do its job? If so, then that
  would be why. For example:
 
  ...
  while(1) {
  gdk_threads_enter();
  sleep(1)
  gdk_threads_leave();
  sleep(10)
  };
  ...
 
  you'd freeze your app for a second every 10 seconds.
 
 

 
  Ahh, ok. How else can I accomplish my goal, then? I need to give GTK the 
 
  Which goal? Describe what your app is supposed to do.
 
  tom
 
 I want to fix the issue of the UI freezing when the CPU-intensive 
 function, which is on a separate thread and calls GDK, is executed.

Then put your CPU-intensive code on another proces an give data
back on a file descriptor when you are redy. This is the common
way to do it!

 
 ___
 gtk-app-devel-list mailing list
 gtk-app-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

-- 
Göran Hasse


Göran Hasseemail: [EMAIL PROTECTED] Tel: 08-6949270
Raditex AB http://www.raditex.se
Planiavägen 15, 1tr Mob: 070-5530148
131 34  NACKA, SWEDEN OrgNr: 556240-0589
VAT: SE556240058901
--

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Michael McCann
Brian J. Tarricone wrote:
 Michael McCann wrote:
   
 Michael R. Head wrote:
 
 Does your special function take time to do its job? If so, then that
 would be why. For example:

 ...
 while(1) {
 gdk_threads_enter();
 sleep(1)
 gdk_threads_leave();
 sleep(10)
 };
 ...

 you'd freeze your app for a second every 10 seconds.
   
 Ahh, ok. How else can I accomplish my goal, then? I need to give GTK the 
 lock, as I'm calling GDK from another function not in the main GTK loop. 
 I tried leaving out gdk_threads_enter()/leave() in the CPU-intensive 
 function, but X gives me errors.
 

 Don't use gdk in the CPU-intensive function:
Unfortunately, the GDK calls _are_ what is CPU-intensive. I believe the 
gdk_pixbuf_get_from_drawable() call is the most intensive. None of my regular 
code is CPU-intensive.

Of course, if I clocked my CPU back up to 3.2GHz, this wouldn't be a problem. 
;D However, I can't count on my users having a fast CPU.

I'll try out that g_idle_add() method tomorrow...


___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Michael McCann
Michael R. Head wrote:
 I'll break protocol and reply to my own message _again_...

 On Tue, 2007-12-18 at 19:05 -0500, Michael R. Head wrote:
   
 On Tue, 2007-12-18 at 18:46 -0500, Michael McCann wrote:
 
 Ahh, ok. How else can I accomplish my goal, then? I need to give GTK the 
 lock, as I'm calling GDK from another function not in the main GTK loop. 
 I tried leaving out gdk_threads_enter()/leave() in the CPU-intensive 
 function, but X gives me errors.
   
 Well, I guess what you need to do is to separate out the CPU intensive
 bits of the function from the widget manipulation bits...

 my_function() {
 compute_real_hard();

 gdk_threads_enter();
 update_ui();
 gdk_threads_leave();

 }

 Or something like that.
 

 Also, you can skip using gdk_threads_enter() and gdk_threads_leave() if
 you instead use g_idle_add(update_ui) and make update_ui a suitable
 callback:

 http://library.gnome.org/devel/glib/stable/glib-The-Main-Event-Loop.html#g-idle-add

 mike

   
Ok, I tried the g_idle_add() idea out:

NonUIThread Calls foo() -
foo() calls g_idle_add(), which is passed a GSourceFunc, bar(), 
along with some data it needs -
   bar() runs a bunch of GDK calls (gdk_threads_enter()/leave() is 
_not_ called, neither in foo() nor bar())

foo(), after calling g_idle_add(), immediately begins executing 
statements after the g_idle_add() call. However, bar() still holds up 
the UI...

Ack!
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Brian J. Tarricone
Michael McCann wrote:
 Brian J. Tarricone wrote:
 Don't use gdk in the CPU-intensive function:
 Unfortunately, the GDK calls _are_ what is CPU-intensive. I believe the 
 gdk_pixbuf_get_from_drawable() call is the most intensive. None of my 
 regular code is CPU-intensive.

How large is the GdkDrawable?  I wouldn't imagine that to eat too much 
CPU.  You can try only acquiring the gdk lock in your thread when 
absolutely necessary to see if that helps, like this:

do_something_without_gdk();
gdk_threads_enter();
gdk_pixbuf_get_from_drawable();
gdk_threads_leave();
do_other_stuff_without_gdk();
gdk_threads_enter();
do_some_stuff_with_the_gdk_drawable();
gdk_threads_leave();
...

Obviously you don't want to go nuts taking and dropping the lock over 
and over, but this might help track down (or even eliminate) what part 
of your code is blocking and causing the UI to freeze (add some 
printf()s in there too, I guess).

-brian


___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Michael McCann
Brian J. Tarricone wrote:
 Michael McCann wrote:
   
 Brian J. Tarricone wrote:
 
 Don't use gdk in the CPU-intensive function:
   
 Unfortunately, the GDK calls _are_ what is CPU-intensive. I believe the 
 gdk_pixbuf_get_from_drawable() call is the most intensive. None of my 
 regular code is CPU-intensive.
 

 How large is the GdkDrawable?

It's the size of the entire screen: 1024x768
   I wouldn't imagine that to eat too much 
 CPU.  You can try only acquiring the gdk lock in your thread when 
 absolutely necessary to see if that helps, like this:

 do_something_without_gdk();
 gdk_threads_enter();
 gdk_pixbuf_get_from_drawable();
 gdk_threads_leave();
 do_other_stuff_without_gdk();
 gdk_threads_enter();
 do_some_stuff_with_the_gdk_drawable();
 gdk_threads_leave();
 ...
   

Yes, I've already tried that, to no avail. My code basically only 
consists of:

gdk_screen_get_default(): Get the default screen
gdk_screen_get_root_window(): Get the root window 
gdk_pixbuf_get_from_drawable(): Get a pixbuf from the entire screen
gdk_pixbuf_save_to_bufferv(): Save the pixbuf to a buffer.

Remove all of the GDK calls, and there is no UI freeze. I can even throw in an 
infinite loop to any function in the non-UI thread, and the UI does not freeze, 
which is to be expected.



___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: C vs C++ for GTK

2007-12-18 Thread Jon Harrop
On Thursday 13 December 2007 08:28, Dan H wrote:
 On Wed, 12 Dec 2007 09:26:25 -0700
 Michael L Torrie [EMAIL PROTECTED] wrote:
  GTKmm is based on some very nice C++ abstractions around pointers,
  providing many of the same benefits as any managed language with
  pure C++.  They are called smart pointers and for GUI development,
  they work very very well.

 Isn't smart pointers just a reference counting scheme?

Exactly, yes. It is no substitute for accurate GC, of course.

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?e

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Button Callbacks

2007-12-18 Thread Vroni

Hi guys,

I have this really dumb problem, but I can´t get my head around it. My 
program should do the following:

- When a button is pressed, a specific playlist[m3u]-file should be 
opened in the media player.

Sure, the first part is to add a callback for the buttons, but how do I 
open the file (and with it the media player. It should do the same as a 
double click on the file would)?
Is it even possible to do do it this way?

I would be unbelievable grateful for ideas, tips or hints. I´m kinda at 
my wits end.

So long,
V
-- 
View this message in context: 
http://www.nabble.com/Button-Callbacks-tp14350641p14350641.html
Sent from the Gtk+ - Apps Dev mailing list archive at Nabble.com.

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: Custom container widget - childs drawn in top-left corner of window

2007-12-18 Thread Tristan Van Berkom
On Dec 15, 2007 8:46 AM, Stephan Arts [EMAIL PROTECTED] wrote:

 Hi,

 I am having an issue with a new container widget I am writing. I have
 overridden the size_request and size_allocate methods.[0]

 For some reason, the children are all rendered in the top-left corner
 of the main window. Not even near the container.

[...]

 child_allocation.x = allocation-x + border_width;
 child_allocation.y = allocation-y + border_width;
 child_allocation.width = 70 - border_width;
 child_allocation.height = 70 - border_width;


Looks like you ignored the allocation here and just assigned 70...

/*
 if (GTK_WIDGET_REALIZED (widget))
 {
 gdk_window_move_resize (widget-window,
   allocation-x + border_width,
   allocation-y + border_width,
   allocation-width - border_width * 2,
   allocation-height - border_width * 2);
   }
 */


And your problem is here, since you never moved your GdkWindow to
where it is supposed to be, it is infact still at its default location at
the
top-left corner of its parent window.

Cheers,
 -Tristan
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Reparsing with GtkBuilder

2007-12-18 Thread Johan Dahlin
amol wrote:
 Hi
 If i used gtk_builder_add_from_string to parse some string for builder 
 which already has some content then application terminates  with 
 following message
  Gtk-ERROR **: file gtkbuilder.c: line 567 
 (apply_delayed_properties): assertion failed: (object != NULL)
 if builder had already set some delayed property.
 
 If builder had not set any delayed property previously then it does not 
 crashes while reparsing with add_string.
 
 Is this bug in Gtk+?

Likely!
Multiple calls to add_from_string/add_from_file has not yet been thoroughly 
tested.

 Delayed properties are applied in parser finished.
 If we parse any buffer again with same builder then it tries to set the 
 delayed properties again which are irrelevant.
 setting builder-delayed_properties to NULL in parser_finished solves 
 above problem but is this a right solution or it has any other side effects?
 If new buffer has any delayed properties associated with objects then  
 builder-delayed_properties will set again and that properties will be 
 applied in parser_finished.

This makes sense, we had a similar bug related to signal connection and the 
solution is the same as you proposed.

Could you please file a bug and let the discussion continue there?

Johan
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Michael McCann
I've got a multithreaded GTK application. One thread runs gtk_main():

gtk_threads_enter();
gtk_main();
gtk_threads_leave();

The other thread is an infinite loop that sleeps for one second on each 
loop. Every x seconds, the infinite loop calls a function, which makes 
some GDK calls. At the beginning of this function, gdk_threads_enter() 
is called; at the end, gdk_flush() and gdk_threads_leave() is called.

Whenever this function is called, the UI freezes and CPU usage jumps to 
100% for about one second (no other applications freeze, of course). 
I've tried calling gdk_threads_leave()/enter() before and after each GDK 
call to no avail. I run g_thread_init() and gdk_threads_init() at the 
beginning of my program.

In the function, gdk_screen_get_default(), gdk_screen_get_root_window(), 
gdk_pixbuf_get_from_drawable(), and gdk_pixbuf_save_to_bufferv() are called.

I'm using NetBSD on a P4 1.2GHz. What am I doing wrong? I've asked this 
question on IRC (irc.gnome.org, #gtk+) but noone seems to know the problem.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Multi-threaded UI Freezes on GDK Call

2007-12-18 Thread Michael R. Head

On Tue, 2007-12-18 at 20:37 -0500, Michael McCann wrote:
 Brian J. Tarricone wrote:
 
 Yes, I've already tried that, to no avail. My code basically only 
 consists of:
 
 gdk_screen_get_default(): Get the default screen
 gdk_screen_get_root_window(): Get the root window 
 gdk_pixbuf_get_from_drawable(): Get a pixbuf from the entire screen

OK, yeah, this operation will probably be slow! Taking a screenshot is a
time consuming op. I don't think there's much to do about that. I mean,
just run the Applications/Accessories/Take Screenshot app to see how
long it takes.

There is probably a better way to implement your app. What exactly do
you want to do? 

 gdk_pixbuf_save_to_bufferv(): Save the pixbuf to a buffer.
 
 Remove all of the GDK calls, and there is no UI freeze. I can even throw in 
 an infinite loop to any function in the non-UI thread, and the UI does not 
 freeze, which is to be expected.
 
 
 
 ___
 gtk-app-devel-list mailing list
 gtk-app-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
 
-- 
Michael R. Head [EMAIL PROTECTED]
http://picasaweb.google.com/demiri.head.wedding
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: Force redrawing of a window

2007-12-18 Thread Mathias Hasselmann

Am Dienstag, den 18.12.2007, 00:33 + schrieb Xaero:
 Hi,
 I added an rgba colormap to a screen (using
 gdk_screen_get_rgba_colormap and gtk_widget_set_default_colormap);
 The result is that the change affects only new created windows, while
 those which already exist remain the same. 
 Is there a solution?

I have not worked with RGBA visuals yet, but from my theoretical
understanding you cannot chance the visual of existing __X11__ windows.
Therefore I'd try to call gtk_widget_unrealize(), followed by
gtk_widget_realize() on your window.

I hope this information helps. 

This list has the purpose of coordinating development of the library
itself, btw. For questions regarding use of GTK+ there are the gtk-list
and the gtk-app-devel-list mailing lists.

Ciao,
Mathias
-- 
Mathias Hasselmann [EMAIL PROTECTED]
http://taschenorakel.de/


signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


GLib Testframework API

2007-12-18 Thread Johan Dahlin
Sorry for being late in the game for comments, but here we go.

In general this api differs slightly from JUnit/python, which has the 
following (main) methods:

  assertEqual
  assertNotEqual
  assertTrue
  assertFalse
  assertRaises

Perhaps the term equals could be used instead of cmp.

assertTrue is g_assert, but assertFalse is missing.
I know it is easy to just put an ! in the beginning of the expression, but 
it is easier to read if it is explicitly visible in the function/macro name.

I haven't looked in detail at the trap api, but having something similar to 
assertRaises for g_error  friends would be a good thing.

g_assert_cmpstr, accepts a comparison operator, while this makes sense for 
comparing floats and integers I don't think it should be included in the api 
for strings.
Basically, the only thing you want to check if is a string is equal to 
another or not, so perhaps it could be replaced with:

   g_assert_equals_str
   g_assert_not_equals_str

Or do you see a use case for using other operators besides == and != ?

Johan
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Expose event for DirectFb

2007-12-18 Thread Eric Logan
Hi all,

Is there any DirectFb events equivalent to x11 expose-event.
I am currently porting Firefox X11 events related code to DirectFb.
I built gtk+-2.10.14 with DirectFb.

Thanks in Advance,
Logan
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


g_format_file_size_for_display()

2007-12-18 Thread Federico Mena Quintero
Should this be called generically g_format_size_for_display()?  You
could use it for more than file sizes (free RAM in gnome-system-monitor,
etc.).

  Federico

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread David Zeuthen

On Tue, 2007-12-18 at 14:50 -0600, Federico Mena Quintero wrote:
 Should this be called generically g_format_size_for_display()?  You
 could use it for more than file sizes (free RAM in gnome-system-monitor,
 etc.).

It's here btw

http://svn.gnome.org/viewvc/glib/trunk/glib/gfileutils.c?revision=6076view=markup

char *g_format_file_size_for_display (goffset size);

Ideally this one needs to take another parameter indicating whether you
want 1kb = 1000 bytes or 1kb = 1024 bytes. 

The reason is that we want to generate nice display names in the volume
monitor; for ordinary media you want 1000 (to match the label on the
media); for optical discs you normally want 1024. gnome-vfs has this
terrible bug where it uses 1024 so you get the label 61.2 MB media
even when the media itself says 64MB. This is kinda like punching the
user right in the face. It's not a mistake we should make for the new
shiny gvfs stuff.

  David


___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread Kevin Fox
Computer Makers Sued Over Hard Drive Size

http://yro.slashdot.org/article.pl?sid=03/09/18/2245200

;)

On Tue, 2007-12-18 at 16:45 -0500, David Zeuthen wrote:
 On Tue, 2007-12-18 at 14:50 -0600, Federico Mena Quintero wrote:
  Should this be called generically g_format_size_for_display()?  You
  could use it for more than file sizes (free RAM in gnome-system-monitor,
  etc.).
 
 It's here btw
 
 http://svn.gnome.org/viewvc/glib/trunk/glib/gfileutils.c?revision=6076view=markup
 
 char *g_format_file_size_for_display (goffset size);
 
 Ideally this one needs to take another parameter indicating whether you
 want 1kb = 1000 bytes or 1kb = 1024 bytes. 
 
 The reason is that we want to generate nice display names in the volume
 monitor; for ordinary media you want 1000 (to match the label on the
 media); for optical discs you normally want 1024. gnome-vfs has this
 terrible bug where it uses 1024 so you get the label 61.2 MB media
 even when the media itself says 64MB. This is kinda like punching the
 user right in the face. It's not a mistake we should make for the new
 shiny gvfs stuff.
 
   David
 
 
 ___
 gtk-devel-list mailing list
 gtk-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-devel-list
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread Sven Neumann
Hi,

On Tue, 2007-12-18 at 16:45 -0500, David Zeuthen wrote:
 On Tue, 2007-12-18 at 14:50 -0600, Federico Mena Quintero wrote:
  Should this be called generically g_format_size_for_display()?  You
  could use it for more than file sizes (free RAM in gnome-system-monitor,
  etc.).
 
 It's here btw
 
 http://svn.gnome.org/viewvc/glib/trunk/glib/gfileutils.c?revision=6076view=markup
 
 char *g_format_file_size_for_display (goffset size);
 
 Ideally this one needs to take another parameter indicating whether you
 want 1kb = 1000 bytes or 1kb = 1024 bytes. 

We should also decide then whether the displayed size should use MB or
MiB, see http://en.wikipedia.org/wiki/Mebibyte and
http://www.iec.ch/zone/si/si_bytes.htm


Sven


___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread David Zeuthen

On Tue, 2007-12-18 at 23:01 +0100, Sven Neumann wrote:
 We should also decide then whether the displayed size should use MB or
 MiB, see http://en.wikipedia.org/wiki/Mebibyte and
 http://www.iec.ch/zone/si/si_bytes.htm

I think MiB would just go into the geekspeak_US translations, no? :-)

 David


___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread Paul LeoNerd Evans
On Tue, 18 Dec 2007 23:01:22 +0100
Sven Neumann [EMAIL PROTECTED] wrote:

 We should also decide then whether the displayed size should use MB or
 MiB, see http://en.wikipedia.org/wiki/Mebibyte and
 http://www.iec.ch/zone/si/si_bytes.htm

I for one would like to vote in favour of the kiB/MiB/etc.. scheme for
powers-of-2, reserving kB/MB/etc.. strictly for powers-of-10. Trying to
cuddle users by protecting them from the confusing MiB unit will only
lead to even more confusion about 1000 vs 1024. Better to be consistent
eveywhere, even if it means sometimes people have to learn what ki means.

-- 
Paul LeoNerd Evans

[EMAIL PROTECTED]
ICQ# 4135350   |  Registered Linux# 179460
http://www.leonerd.org.uk/


signature.asc
Description: PGP signature
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: GLib Testframework API

2007-12-18 Thread Behdad Esfahbod
On Tue, 2007-12-18 at 06:20 -0500, Johan Dahlin wrote:
 
 assertTrue is g_assert, but assertFalse is missing.

Call it g_assert_fail()...

-- 
behdad
http://behdad.org/

...very few phenomena can pull someone out of Deep Hack Mode, with two
noted exceptions: being struck by lightning, or worse, your *computer*
being struck by lightning.  -- Matt Welsh

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread Paul LeoNerd Evans
On Tue, 18 Dec 2007 22:13:56 +
Paul LeoNerd Evans [EMAIL PROTECTED] wrote:

 I for one would like to vote in favour of the kiB/MiB/etc.. scheme for

Oops. Apparently it's KiB (capital 'K') to mean 2^10. How's that for
consistency? :)

-- 
Paul LeoNerd Evans

[EMAIL PROTECTED]
ICQ# 4135350   |  Registered Linux# 179460
http://www.leonerd.org.uk/


signature.asc
Description: PGP signature
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread Mathias Hasselmann
Am Dienstag, den 18.12.2007, 23:01 +0100 schrieb Sven Neumann:
 Hi,
 
 On Tue, 2007-12-18 at 16:45 -0500, David Zeuthen wrote:
  On Tue, 2007-12-18 at 14:50 -0600, Federico Mena Quintero wrote:
   Should this be called generically g_format_size_for_display()?  You
   could use it for more than file sizes (free RAM in gnome-system-monitor,
   etc.).
  
  It's here btw
  
  http://svn.gnome.org/viewvc/glib/trunk/glib/gfileutils.c?revision=6076view=markup
  
  char *g_format_file_size_for_display (goffset size);
  
  Ideally this one needs to take another parameter indicating whether you
  want 1kb = 1000 bytes or 1kb = 1024 bytes. 
 
 We should also decide then whether the displayed size should use MB or
 MiB, see http://en.wikipedia.org/wiki/Mebibyte and
 http://www.iec.ch/zone/si/si_bytes.htm

I am all for SI units, even it writing MiB could cause some users to
believe, we are too stupid to spell.

Seemingly random switching between 1000 and 1024 whouldn't really help -
I guess: Imagine some user wants to copy a 64 MiB file from some 1024 to
some 1000 scale media: WTF doesn't this 64 MB file (64 * 2^10 bytes) fit
on this 64 MB stick (64 * 10^6 bytes)?

Ciao,
Mathias
-- 
Mathias Hasselmann [EMAIL PROTECTED]
Openismus GmbH: http://www.openismus.com/
Personal Site: http://taschenorakel.de/


signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread Dave Benson
On Tue, Dec 18, 2007 at 05:14:31PM -0600, Federico Mena Quintero wrote:
 Big deal :)  When you see 61.2 MB you think, oh, file system overhead!
 ripples in the time-space continuum.  Nobody cares about that.
 
 Back to my original question:  should this function be called
 g_format_size_for_display()?  It's not for files only.

I have no idea whether to use SI or computer units,
but the fact that there's debate suggests holding
off til there's more experience.

Once a few cut-n-pasted versions exist,
then you can decide if they are all the same...

- dave
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread Federico Mena Quintero
On Tue, 2007-12-18 at 16:45 -0500, David Zeuthen wrote:

 char *g_format_file_size_for_display (goffset size);
 
 Ideally this one needs to take another parameter indicating whether you
 want 1kb = 1000 bytes or 1kb = 1024 bytes. 

No, because then you'll have applications using either, and then someone
will want to make them consistent and we'll get an option in the control
center an an XSETTING, which is yet another thing we'll have to port
over when moving from GConf to DConf, and it's just a big fat mess.

 The reason is that we want to generate nice display names in the
 volume
 monitor; for ordinary media you want 1000 (to match the label on the
 media); for optical discs you normally want 1024. gnome-vfs has this
 terrible bug where it uses 1024 so you get the label 61.2 MB media
 even when the media itself says 64MB. This is kinda like punching the
 user right in the face. It's not a mistake we should make for the new
 shiny gvfs stuff.

Big deal :)  When you see 61.2 MB you think, oh, file system overhead!
ripples in the time-space continuum.  Nobody cares about that.

Back to my original question:  should this function be called
g_format_size_for_display()?  It's not for files only.

[Who's the nitpicker: the one who asks for file sizes versus general
sizes or the one who asks about SI units vs. computer units...]

  Federico


___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread JP Rosevear

On Tue, 2007-12-18 at 15:31 -0800, Dave Benson wrote:
 On Tue, Dec 18, 2007 at 05:14:31PM -0600, Federico Mena Quintero wrote:
  Big deal :)  When you see 61.2 MB you think, oh, file system overhead!
  ripples in the time-space continuum.  Nobody cares about that.
  
  Back to my original question:  should this function be called
  g_format_size_for_display()?  It's not for files only.
 
 I have no idea whether to use SI or computer units,
 but the fact that there's debate suggests holding
 off til there's more experience.

Actually, I see it as an argument for centralizing the call and
abstracting the decision away from apps.  Then whenever its tweaked you
fix it in one spot and it instantly propagates everywhere. 

 Once a few cut-n-pasted versions exist,
 then you can decide if they are all the same...

They are already a few like gnome-system-monitor, gnome-main-menu,
presumably nautilus.

-JP
-- 
JP Rosevear [EMAIL PROTECTED]
Novell, Inc.

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread Brian J. Tarricone
David Zeuthen wrote:

 Ideally this one needs to take another parameter indicating whether you
 want 1kb = 1000 bytes or 1kb = 1024 bytes. 
 
 The reason is that we want to generate nice display names in the volume
 monitor; for ordinary media you want 1000 (to match the label on the
 media); for optical discs you normally want 1024. gnome-vfs has this
 terrible bug where it uses 1024 so you get the label 61.2 MB media
 even when the media itself says 64MB. This is kinda like punching the
 user right in the face. It's not a mistake we should make for the new
 shiny gvfs stuff.

Mistake?  That's correct behavior.  It's not our fault the storage 
companies lie and use base-10 kB/MB/GB when everyone else uses base-2, 
and in fact they've been successfully sued in the US for doing this. 
Reporting the *actual* size of the media in base-2 units is the right 
way to go everywhere.

Whether to use traditional kB/MB/GB or the (IMO somewhat ridiculous) SI 
KiB(which breaks the normal lowercase k = kilo convention for no 
reason)/MiB/GiB is another discussion.  (I'd vote no in that discussion, 
at any rate.)

-brian
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread Matthias Clasen
We can make it _(kB), and then people can use
LANG=en_US.crazy-si-units if they really want that. Sounds like a case
for LC_MEASUREMENT, acutally.
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: g_format_file_size_for_display()

2007-12-18 Thread Sven Neumann
Hi,

On Tue, 2007-12-18 at 17:14 -0600, Federico Mena Quintero wrote:

  char *g_format_file_size_for_display (goffset size);
  
  Ideally this one needs to take another parameter indicating whether you
  want 1kb = 1000 bytes or 1kb = 1024 bytes. 
 
 No, because then you'll have applications using either, and then someone
 will want to make them consistent and we'll get an option in the control
 center an an XSETTING, which is yet another thing we'll have to port
 over when moving from GConf to DConf, and it's just a big fat mess.

Yes, because this is a choice that the application developer needs to
make, not the user. So this is never going to become am option in the
control center or an XSETTING. We just need to make sure that the API
docs give the application developer the information they need to make
the right choice.

 Back to my original question:  should this function be called
 g_format_size_for_display()?  It's not for files only.

Yes, we all seem to agree that this function is useful for other things
than file sizes. But we should try to get it right. Otherwise it is
simply not going to be used and we force application developers to
invent their own function.


Sven


___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list