comparison gtk/dw.c @ 267:bf8b907f8a29

Added initial version of updated key_press_event callback.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 03 Mar 2003 19:50:19 +0000
parents 84471d53ab58
children 07bff0e012d3
comparison
equal deleted inserted replaced
266:5c5bee286d0e 267:bf8b907f8a29
280 SignalHandler *work = (SignalHandler *)data; 280 SignalHandler *work = (SignalHandler *)data;
281 int retval = FALSE; 281 int retval = FALSE;
282 282
283 if(work) 283 if(work)
284 { 284 {
285 int (*keypressfunc)(HWND, int, void *) = work->func; 285 int (*keypressfunc)(HWND, char, int, int, void *) = work->func;
286 286
287 retval = keypressfunc(widget, *event->string, work->data); 287 retval = keypressfunc(widget, *event->string, event->keyval,
288 event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK), work->data);
288 } 289 }
289 return retval; 290 return retval;
290 } 291 }
291 292
292 static gint _generic_event(GtkWidget *widget, gpointer data) 293 static gint _generic_event(GtkWidget *widget, gpointer data)
2641 * handle: Handle to the parent window. 2642 * handle: Handle to the parent window.
2642 * id: Integer ID of the child. 2643 * id: Integer ID of the child.
2643 */ 2644 */
2644 HWND API dw_window_from_id(HWND handle, int id) 2645 HWND API dw_window_from_id(HWND handle, int id)
2645 { 2646 {
2647 GList *orig = NULL, *list = NULL;
2648 int _locked_by_me = FALSE;
2649
2650 DW_MUTEX_LOCK;
2651 if(handle && GTK_IS_CONTAINER(handle))
2652 {
2653 #if GTK_MAJOR_VERSION > 1
2654 orig = list = gtk_container_get_children(GTK_CONTAINER(handle));
2655 #else
2656 orig = list = gtk_container_children(GTK_CONTAINER(handle));
2657 #endif
2658 }
2659 while(list)
2660 {
2661 if(GTK_IS_WIDGET(list->data))
2662 {
2663 if(id == (int)gtk_object_get_data(GTK_OBJECT(list->data), "id"))
2664 {
2665 HWND ret = (HWND)list->data;
2666 g_list_free(orig);
2667 DW_MUTEX_UNLOCK;
2668 return ret;
2669 }
2670 }
2671 list = list->next;
2672 }
2673 if(orig)
2674 g_list_free(orig);
2675 DW_MUTEX_UNLOCK;
2646 return 0L; 2676 return 0L;
2647 } 2677 }
2648 2678
2649 void _strip_cr(char *dest, char *src) 2679 void _strip_cr(char *dest, char *src)
2650 { 2680 {
4869 DW_MUTEX_LOCK; 4899 DW_MUTEX_LOCK;
4870 tmp = gtk_drawing_area_new(); 4900 tmp = gtk_drawing_area_new();
4871 gtk_widget_set_events(tmp, GDK_EXPOSURE_MASK 4901 gtk_widget_set_events(tmp, GDK_EXPOSURE_MASK
4872 | GDK_LEAVE_NOTIFY_MASK 4902 | GDK_LEAVE_NOTIFY_MASK
4873 | GDK_BUTTON_PRESS_MASK 4903 | GDK_BUTTON_PRESS_MASK
4904 | GDK_KEY_PRESS_MASK
4874 | GDK_POINTER_MOTION_MASK 4905 | GDK_POINTER_MOTION_MASK
4875 | GDK_POINTER_MOTION_HINT_MASK); 4906 | GDK_POINTER_MOTION_HINT_MASK);
4876 gtk_object_set_data(GTK_OBJECT(tmp), "id", (gpointer)id); 4907 gtk_object_set_data(GTK_OBJECT(tmp), "id", (gpointer)id);
4908 GTK_WIDGET_SET_FLAGS(tmp, GTK_CAN_FOCUS);
4877 gtk_widget_show(tmp); 4909 gtk_widget_show(tmp);
4878 DW_MUTEX_UNLOCK; 4910 DW_MUTEX_UNLOCK;
4879 return tmp; 4911 return tmp;
4880 } 4912 }
4881 4913