Implemented the start of the text widget onkey callback. You can now type

URLs in the location field of xpviewer and hit enter.
This commit is contained in:
msw%gimp.org 1998-11-19 05:33:13 +00:00
parent 9746554ada
commit aabc8206e0
3 changed files with 29 additions and 24 deletions

View File

@ -41,14 +41,14 @@ struct nsKeyConverter {
int keysym; // GDK keysym key code
};
struct nsKeyConverter nsKeycodes[] = {
NS_VK_CANCEL, GDK_Cancel,
struct nsKeyConverter nsKeycodes[] = {
NS_VK_CANCEL, GDK_Cancel,
NS_VK_BACK, GDK_BackSpace,
NS_VK_TAB, GDK_Tab,
NS_VK_CLEAR, GDK_Clear,
NS_VK_RETURN, GDK_Return,
NS_VK_SHIFT, GDK_Shift_L,
NS_VK_SHIFT, GDK_Shift_R,
NS_VK_SHIFT, GDK_Shift_L,
NS_VK_SHIFT, GDK_Shift_R,
NS_VK_CONTROL, GDK_Control_L,
NS_VK_CONTROL, GDK_Control_R,
NS_VK_ALT, GDK_Alt_L,
@ -64,12 +64,12 @@ struct nsKeyConverter nsKeycodes[] = {
NS_VK_LEFT, GDK_Left,
NS_VK_UP, GDK_Up,
NS_VK_RIGHT, GDK_Right,
NS_VK_DOWN, GDK_Down,
NS_VK_DOWN, GDK_Down,
NS_VK_PRINTSCREEN, GDK_Print,
NS_VK_INSERT, GDK_Insert,
NS_VK_DELETE, GDK_Delete,
NS_VK_NUMPAD0, GDK_KP_0,
NS_VK_NUMPAD0, GDK_KP_0,
NS_VK_NUMPAD1, GDK_KP_1,
NS_VK_NUMPAD2, GDK_KP_2,
NS_VK_NUMPAD3, GDK_KP_3,
@ -112,15 +112,17 @@ struct nsKeyConverter nsKeycodes[] = {
NS_VK_F24, GDK_F24,
NS_VK_COMMA, GDK_comma,
NS_VK_PERIOD, GDK_period,
NS_VK_SLASH, GDK_slash,
//XXX: How do you get a BACK_QUOTE? NS_VK_BACK_QUOTE, GDK_backquote,
NS_VK_OPEN_BRACKET, GDK_bracketleft,
NS_VK_CLOSE_BRACKET, GDK_bracketright,
NS_VK_PERIOD, GDK_period,
NS_VK_SLASH, GDK_slash,
//XXX: How do you get a BACK_QUOTE? NS_VK_BACK_QUOTE, GDK_backquote,
NS_VK_OPEN_BRACKET, GDK_bracketleft,
NS_VK_CLOSE_BRACKET, GDK_bracketright,
NS_VK_QUOTE, GDK_quotedbl
};
};
void nsGtkWidget_InitNSKeyEvent(int aEventType, nsKeyEvent& aKeyEvent,
GtkWidget *w, gpointer p, GdkEvent * event);
int nsConvertKey(int keysym)
{
@ -464,9 +466,13 @@ void nsGtkWidget_Resize_Callback(GtkWidget *w, gpointer p)
}
//==============================================================
void nsGtkWidget_Text_Callback(GtkWidget *w, gpointer p)
void nsGtkWidget_Text_Callback(GtkWidget *w, GdkEvent* event, gpointer p)
{
nsWindow *widgetWindow = (nsWindow*)gtk_object_get_user_data(GTK_OBJECT(w));
nsKeyEvent kevent;
nsGtkWidget_InitNSKeyEvent(NS_KEY_UP, kevent, w, p, event);
nsWindow * widgetWindow = (nsWindow *) p ;
widgetWindow->OnKey(NS_KEY_UP, kevent.keyCode, &kevent);
#if 0
nsWindow * widgetWindow = (nsWindow *) p ;
int len;
@ -538,8 +544,8 @@ void nsGtkWidget_InitNSKeyEvent(int aEventType, nsKeyEvent& aKeyEvent,
GdkEventKey *eventKey = (GdkEventKey*)event;
aKeyEvent.keyCode = nsConvertKey(eventKey->keyval) & 0x00FF;
aKeyEvent.time = eventKey->time;
aKeyEvent.isShift = (eventKey->state & ShiftMask) ? PR_TRUE : PR_FALSE;
aKeyEvent.time = eventKey->time;
aKeyEvent.isShift = (eventKey->state & ShiftMask) ? PR_TRUE : PR_FALSE;
aKeyEvent.isControl = (eventKey->state & ControlMask) ? PR_TRUE : PR_FALSE;
aKeyEvent.isAlt = (eventKey->state & Mod1Mask) ? PR_TRUE : PR_FALSE;
}

View File

@ -16,7 +16,7 @@
* Reserved.
*/
#ifndef __nsXtEventHandler_h
#ifndef __nsXtEventHandler_h
#define __nsXtEventHandler_h
#include <gtk/gtk.h>
@ -48,7 +48,7 @@ void CheckButton_Toggle_Callback(GtkWidget *w, gpointer p);
void nsGtkWidget_RadioButton_ArmCallback(GtkWidget *w, gpointer p);
void nsGtkWidget_RadioButton_DisArmCallback(GtkWidget *w, gpointer p);
void nsGtkWidget_Text_Callback(GtkWidget *w, gpointer p);
void nsGtkWidget_Text_Callback(GtkWidget *w, GdkEvent* event, gpointer p);
void nsGtkWidget_Resize_Callback(GtkWidget *w, gpointer p);
void nsGtkWidget_Expose_Callback(GtkWidget *w, gpointer p);
@ -57,8 +57,3 @@ void nsGtkWidget_Refresh_Callback(gpointer call_data);
void nsGtkWidget_Menu_Callback(GtkWidget *w, gpointer p);
#endif // __nsXtEventHandler.h

View File

@ -63,6 +63,10 @@ NS_METHOD nsTextWidget::CreateNative(GtkWidget *parentWindow)
mWidget = gtk_entry_new();
gtk_widget_set_name(mWidget, "nsTextWidget");
gtk_editable_set_editable(GTK_EDITABLE(mWidget), mMakeReadOnly?PR_FALSE:PR_TRUE);
gtk_signal_connect(GTK_OBJECT(mWidget),
"key_release_event",
GTK_SIGNAL_FUNC(nsGtkWidget_Text_Callback),
this);
gtk_widget_show(mWidget);
return NS_OK;
}