Luiz Rafael Culik Guimaraes-4 wrote:
>
> Dear Friends
>
> I have an small app with one gtk_entry_new with an handle to my user
> defined key_press_event
>
> but i cannot get the accented char from latin 1 code page on entry
>
> here an part of my key handler
>
> here is the routine for key_press_event
>
>
> #define WM_MOVE 3
> #define WM_SIZE 5
> #define WM_KEYDOWN 256 // 0x0100
> #define WM_KEYUP 257 // 0x0101
> #define WM_MOUSEMOVE 512 // 0x0200
> #define WM_LBUTTONDOWN 513 // 0x0201
> #define WM_LBUTTONUP 514 // 0x0202
> #define WM_LBUTTONDBLCLK 515 // 0x0203
> #define WM_RBUTTONDOWN 516 // 0x0204
> #define WM_RBUTTONUP 517 // 0x0205
>
> static gint cb_event( GtkWidget *widget, GdkEvent * event, gchar* data )
> {
> gpointer gObject = g_object_get_data( (GObject*) widget, "obj" );
> LONG lRes;
>
> if( !pSym_onEvent )
> pSym_onEvent = hb_dynsymFindName( "ONEVENT" );
>
> //if( !gObject )
> // gObject = g_object_get_data( (GObject*) (widget->parent->parent),
> "obj" );
> if( pSym_onEvent && gObject )
> {
> LONG p1, p2, p3;
>
> if( event->type == GDK_KEY_PRESS || event->type == GDK_KEY_RELEASE )
> {
> p1 = (event->type==GDK_KEY_PRESS)? WM_KEYDOWN : WM_KEYUP;
> p2 = ((GdkEventKey*)event)->keyval;
> p3 = ( ( ((GdkEventKey*)event)->state & GDK_SHIFT_MASK )? 1 : 0 ) |
> ( ( ((GdkEventKey*)event)->state & GDK_CONTROL_MASK )? 2 : 0 ) |
> ( ( ((GdkEventKey*)event)->state & GDK_MOD1_MASK )? 4 : 0 );
> }
> else if( event->type == GDK_SCROLL )
> {
> p1 = WM_KEYDOWN;
> p2 = ( ( (GdkEventScroll*)event )->direction == GDK_SCROLL_DOWN
> )?
> 0xFF54 : 0xFF52;
> p3 = 0;
> }
> else if( event->type == GDK_BUTTON_PRESS ||
> event->type == GDK_2BUTTON_PRESS ||
> event->type == GDK_BUTTON_RELEASE )
> {
> p1 = (event->type==GDK_BUTTON_PRESS)? WM_LBUTTONDOWN :
> ( (event->type==GDK_BUTTON_RELEASE)? WM_LBUTTONUP :
> WM_LBUTTONDBLCLK );
> p2 = 0;
> p3 = ( ((ULONG)(((GdkEventButton*)event)->x)) & 0xFFFF ) | ( (
> ((ULONG)(((GdkEventButton*)event)->y)) << 16 ) & 0xFFFF0000 );
> }
> else if( event->type == GDK_MOTION_NOTIFY )
> {
> p1 = WM_MOUSEMOVE;
> p2 = ( ((GdkEventMotion*)event)->state & GDK_BUTTON1_MASK )? 1:0;
> p3 = ( ((ULONG)(((GdkEventMotion*)event)->x)) & 0xFFFF ) | ( (
> ((ULONG)(((GdkEventMotion*)event)->y)) << 16 ) & 0xFFFF0000 );
> }
> else if( event->type == GDK_CONFIGURE )
> {
> p2 = 0;
> if( widget->allocation.width !=
> ((GdkEventConfigure*)event)->width
> ||
> widget->allocation.height!=
> ((GdkEventConfigure*)event)->height )
> {
> return 0;
> }
> else
> {
> p1 = WM_MOVE;
> p3 = ( ((GdkEventConfigure*)event)->x & 0xFFFF ) |
> ( ( ((GdkEventConfigure*)event)->y << 16 ) & 0xFFFF0000
> );
> }
> }
> else if( event->type == GDK_ENTER_NOTIFY || event->type ==
> GDK_LEAVE_NOTIFY )
> {
> p1 = WM_MOUSEMOVE;
> p2 = ( ((GdkEventCrossing*)event)->state & GDK_BUTTON1_MASK )?
> 1:0
> |
> ( event->type == GDK_ENTER_NOTIFY )? 0x10:0;
> p3 = ( ((ULONG)(((GdkEventCrossing*)event)->x)) & 0xFFFF ) | ( (
> ((ULONG)(((GdkEventMotion*)event)->y)) << 16 ) & 0xFFFF0000 );
> }
> else
> sscanf( (char*)data,"%ld %ld %ld",&p1,&p2,&p3 );
>
> }
> return 0;
> }
>
> any ideia?
>
> Regards
> Luiz
>
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>
>
right,you should modify your codes again by virtue of to be in different
level(GTK and GDK).
if you were to focus on any widgets to get a piece of informations,then your
ways to be wrong!
--
View this message in context:
http://www.nabble.com/gtk_entry_new-and-accented-chars-tp14884653p19118756.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