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

Reply via email to