How to shake a window



Hi all,

I am writing a utility program in gtk+, which has the following
characterstics:

. It has a small window with a drawing_area (100x100), plus a couple
of other small widgets.
. It has NO Window Manager decorations
. It collects some data from a web site and updates window contents
accordingly.

  I want my window to shake visibally when the data gets updated (to
attract the attention of the user). Such a feature known as buzz is
there in a recent windows of yahoo_messenger, in case anyone has seen
it).   

I tried this code in the update data callback of a single-threaded
application): 

note: This is my first gtk program...

{

  /* Here I am in a callback */
  /* ... some irrelevant code skipped */ 

  printf("in buzz...\n");
  
  gdk_window_get_position(main_window->window,
			  &posx, &posy);

  for (ctr=0; ctr<5; ctr++) {
    gdk_window_move( main_window->window, posx-50+(ctr*10), posy );
    usleep(50 * 1000);

    gdk_window_move( main_window->window, posx+50-(ctr*10), posy );
    usleep(50 * 1000);    

  }

  gdk_window_move( main_window->window, posx, posy );      

}

When I run this program, the shake is very random, and occurs only
occasionally.  However, when I take my mouse over the window, the
shake occurs more reliably (and even older events are processed as
soon as I take my mouse there).

I tried giving --sync to my program.  Even now the window shakes only
if my mouse is hovering over the window, plus I get following
messages seemingly randomly:

Xlib: unexpected async reply (sequence 0x410)
Gdk-ERROR **: BadWindow (invalid Window parameter)
  serial 1331 error_code 3 request_code 15 minor_code 0
Gdk-ERROR **: BadDrawable (invalid Pixmap or Window parameter)
  serial 1335 error_code 9 request_code 14 minor_code 0

Anyone for why all this is happening, and how I could write a better
code to shake a window.

PS:
I also wish to know the following:

. How do I make my window "Always on Top" and Sticky, without user
having to manually do this from her window manager?

. Where can I download some nice mouse cursors?

Thanks and regards,
Lokesh.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]