Re: Where is the input callback method in glade?

"Rottengatter, Peter" <[email protected]>
Newsgroups gmane.comp.gnome.glade.user
Message-ID <F23D5CC8E3F91C448DE64E83EE13B2EE39C3D9117D@MSGABZCMS02.ent.bhicorp.com>
 
The infinite loop is easily avoided by setting a flag while modifying the text withing the handler, and testing the flag at the beginning of the handler (not exactly a beautiful solution, but I'm sure it works). This way your intented functionality can be implemented with GtkEntry.

I have no experience with GtkTextView though. It's not a GtkEditable, hence the details of how to implement this will be different.

Regards

Peter Rottengatter

-----Original Message-----
From: Ferdinand Ramirez [mailto:[email protected]] 
Sent: 06 October 2011 08:18
To: Rottengatter, Peter; [email protected]
Subject: RE: [Glade-users] Where is the input callback method in glade?

Thanks. I tried something similar with GtkTextBuffer and it worked, but I cannot modify the text, only block it or let it through. If I modify it, and insert the modified text into the buffer from within the callback, I end up in an infinite loop.

Is there another way you know, using GtkTextView perhaps?

Thanks,
-Ferdinand

--- On Wed, 10/5/11, Rottengatter, Peter <[email protected]> wrote:

> From: Rottengatter, Peter <[email protected]>
> Subject: RE: [Glade-users] Where is the input callback method in glade?
> To: "Ferdinand Ramirez" <[email protected]>, "[email protected]" <[email protected]>
> Date: Wednesday, October 5, 2011, 12:46 AM
> 
> Read
> http://developer.gnome.org/gtk/stable/GtkEditable.html#GtkEditable-insert-text
> 
> 
> I use the following code to restrict input to numerical
> characters (so that the user can only enter positive integer
> numbers):
> 
> ...
> GtkEntry  *entry = gtk_entry_new();
> gtk_signal_connect (G_OBJECT (entry), "insert-text",
> G_CALLBACK (entry_insert), NULL);
> ...
> 
> void entry_insert (GtkEditable *entry, char *new, gint len,
> gpointer position, gpointer data)
> {
>   gboolean  faulty = FALSE;
>   for (int i = 0; i < len; i++)
>   {
>     if (! isdigit (new[i]))
>       faulty = TRUE;
>   }
>   if (faulty)
>   {
>     g_signal_stop_emission_by_name ((gpointer)
> entry, "insert-text");
>   }
> }
> 
> 
> Regards
> 
> Peter Rottengatter
> 
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]]
> On Behalf Of Ferdinand Ramirez
> Sent: 04 October 2011 13:55
> To: [email protected]
> Subject: [Glade-users] Where is the input callback method
> in glade?
> 
> Where is the callback to keyboard input in glade. I want
> this so that I can respond to each letter that is input.
> 
> As as example, I was looking at the tutorial at http://www.micahcarrick.com/files/gtk-glade-tutorial/C/main.c
> and was wondering how the callback method for keyboard
> inputs can be enabled and how I could modify it.
> 
> For simplicity, let us say that I want to be able to print
> out the characters on the terminal as I input them in the
> above program. I then want to update the buffer instead of
> letting some hidden function in glade do it for me. How do I
> achieve this?
> 
> I'm just using the above example since it is simple and
> neatly written.
> 
> Thanks,
> -Ferdinand
> _______________________________________________
> Glade-users maillist  -  [email protected]
> http://lists.ximian.com/mailman/listinfo/glade-users
> Baker Hughes INTEQ GmbH
> Baker-Hughes-Strasse 1, D - 29221 Celle
> Tel.: +49 5141 203 0, Fax: +49 5141 203 296
> Sitz der Gesellschaft: Celle, Amtsgericht Lüneburg HRB
> 100845
> Geschäftsführer: Johannes Witte, Tommie Lee Pate, Dr.
> Hans-Werner Hesse
> 
> Diese Nachricht ist ausschließlich für die Person oder
> Organisation bestimmt, an die sie adressiert ist. Sie kann
> herstellerspezifische, nur für bestimmte Personen
> bestimmte,  vertrauliche oder andere Informationen
> enthalten, die kraft Gesetzes nicht offen gelegt werden
> müssen.  Wenn Sie nicht der in der Adresse genannte
> Empfänger sind oder versehentlich in der Adresszeile
> angesprochen werden, sind Sie nicht berechtigt, diese
> Nachricht oder Teile davon zu lesen, zu drucken,
> aufzubewahren, zu kopieren oder zu verbreiten.  Sollten
> Sie diese Nachricht irrtümlich erhalten haben,
> benachrichtigen Sie bitte den Absender umgehend per Email
> und vernichten Sie sämtliche Kopien der Nachricht.
> 
> DISC-GER-A
> 
_______________________________________________
Glade-users maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/glade-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.