From: <kr_...@us...> - 2003-10-17 23:29:48
|
Update of /cvsroot/htoolkit/port/src/cbits/GTK In directory sc8-pr-cvs1:/tmp/cvs-serv1289/src/cbits/GTK Modified Files: Window.c Log Message: Nonscrollable dialogs for Linux. Index: Window.c =================================================================== RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/Window.c,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** Window.c 12 Oct 2003 22:21:38 -0000 1.39 --- Window.c 17 Oct 2003 23:22:55 -0000 1.40 *************** *** 283,288 **** int modifiers = 0; - widget = GTK_BIN(widget)->child; - if (event->state & GDK_SHIFT_MASK) modifiers |= shiftBIT; if (event->state & GDK_CONTROL_MASK) modifiers |= ctrlBIT; --- 283,286 ---- *************** *** 299,303 **** static void dialog_focus_in_handler(GtkWidget *widget, GdkEventFocus *event, gpointer user_data) { ! handleWindowActivate(GTK_BIN(widget)->child); } --- 297,301 ---- static void dialog_focus_in_handler(GtkWidget *widget, GdkEventFocus *event, gpointer user_data) { ! handleWindowActivate(widget); } *************** *** 306,310 **** if (gInKey) { ! handleWindowKeyboard(GTK_BIN(widget)->child, evKeyUp, gCurChar, 0); gInKey = FALSE; --- 304,308 ---- if (gInKey) { ! handleWindowKeyboard(widget, evKeyUp, gCurChar, 0); gInKey = FALSE; *************** *** 312,316 **** } ! handleWindowDeactivate(GTK_BIN(widget)->child); } --- 310,314 ---- } ! handleWindowDeactivate(widget); } *************** *** 319,323 **** WindowHandle osCreateDialog(WindowHandle parent) { ! GtkWidget *sw, *frame; if (parent == NULL) --- 317,321 ---- WindowHandle osCreateDialog(WindowHandle parent) { ! GtkWidget *layout, *frame; if (parent == NULL) *************** *** 327,351 **** frame = gtk_window_new (GTK_WINDOW_TOPLEVEL); ! gtk_window_set_transient_for(GTK_WINDOW(frame), GTK_WINDOW(gtk_widget_get_toplevel(parent))); gtk_window_set_destroy_with_parent(GTK_WINDOW(frame), gtk_true()); - gtk_signal_connect (GTK_OBJECT(frame), "key-press-event", ! GTK_SIGNAL_FUNC(dialog_key_press_handler), ! NULL); gtk_signal_connect (GTK_OBJECT(frame), "key-release-event", ! GTK_SIGNAL_FUNC(dialog_key_release_handler), ! NULL); gtk_signal_connect (GTK_OBJECT(frame), "focus-in-event", ! GTK_SIGNAL_FUNC(dialog_focus_in_handler), ! NULL); gtk_signal_connect (GTK_OBJECT(frame), "focus-out-event", ! GTK_SIGNAL_FUNC(dialog_focus_out_handler), ! NULL); ! sw = create_generic_window(); ! gtk_container_add(GTK_CONTAINER(frame), sw); ! return sw; } --- 325,369 ---- frame = gtk_window_new (GTK_WINDOW_TOPLEVEL); ! gtk_window_set_transient_for(GTK_WINDOW(frame), GTK_WINDOW(parent)); gtk_window_set_destroy_with_parent(GTK_WINDOW(frame), gtk_true()); gtk_signal_connect (GTK_OBJECT(frame), "key-press-event", ! GTK_SIGNAL_FUNC(dialog_key_press_handler), ! NULL); gtk_signal_connect (GTK_OBJECT(frame), "key-release-event", ! GTK_SIGNAL_FUNC(dialog_key_release_handler), ! NULL); gtk_signal_connect (GTK_OBJECT(frame), "focus-in-event", ! GTK_SIGNAL_FUNC(dialog_focus_in_handler), ! NULL); gtk_signal_connect (GTK_OBJECT(frame), "focus-out-event", ! GTK_SIGNAL_FUNC(dialog_focus_out_handler), ! NULL); ! gtk_signal_connect (GTK_OBJECT(frame), "destroy", ! GTK_SIGNAL_FUNC(handleWindowDestroy), ! NULL); ! gtk_signal_connect (GTK_OBJECT(frame), "delete-event", ! GTK_SIGNAL_FUNC(window_delete_handler), ! NULL); ! layout = port_layout_new(NULL,NULL); ! gtk_container_add(GTK_CONTAINER(frame), layout); ! gtk_widget_show(layout); ! /* Signals */ ! gtk_signal_connect (GTK_OBJECT(layout), "expose-event", ! GTK_SIGNAL_FUNC(window_expose_handler), ! frame); ! gtk_signal_connect (GTK_OBJECT(layout), "button-press-event", ! GTK_SIGNAL_FUNC(window_button_press_handler), ! frame); ! gtk_signal_connect (GTK_OBJECT(layout), "button-release-event", ! GTK_SIGNAL_FUNC(window_button_release_handler), ! frame); ! gtk_signal_connect (GTK_OBJECT(layout), "motion_notify_event", ! GTK_SIGNAL_FUNC(window_motion_notify_handler), ! frame); ! ! return frame; } *************** *** 525,547 **** { GtkRequisition req; - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(window); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS(GTK_OBJECT_GET_CLASS(window)); ! if (scroll_window->vscrollbar_visible) { ! req.width = 2; ! req.height = 2; ! (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(scroll_window->vscrollbar) )->size_request ) ! (scroll_window->vscrollbar, &req ); ! w += req.width + scroll_class->scrollbar_spacing; ! } ! if (scroll_window->hscrollbar_visible) ! { ! req.width = 2; ! req.height = 2; ! (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(scroll_window->hscrollbar) )->size_request ) (scroll_window->hscrollbar, &req ); ! h += req.height + scroll_class->scrollbar_spacing; } --- 543,569 ---- { GtkRequisition req; ! if (GTK_IS_SCROLLED_WINDOW(window)) { ! GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(window); ! GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS(GTK_OBJECT_GET_CLASS(window)); ! if (scroll_window->vscrollbar_visible) ! { ! req.width = 2; ! req.height = 2; ! (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(scroll_window->vscrollbar) )->size_request ) ! (scroll_window->vscrollbar, &req ); ! w += req.width + scroll_class->scrollbar_spacing; ! } ! ! if (scroll_window->hscrollbar_visible) ! { ! req.width = 2; ! req.height = 2; ! (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(scroll_window->hscrollbar) )->size_request ) (scroll_window->hscrollbar, &req ); ! h += req.height + scroll_class->scrollbar_spacing; ! } } *************** *** 576,610 **** void osSetWindowScrollOrigin(WindowHandle window, int x, int y) { ! gtk_adjustment_set_value(gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW(window)), x); ! gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW(window)), y); } void osGetWindowScrollOrigin(WindowHandle window, int *res) { ! res[0] = gtk_adjustment_get_value(gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW(window))); ! res[1] = gtk_adjustment_get_value(gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW(window))); } void osSetWindowLineSize(WindowHandle window, int cx, int cy) { ! GtkAdjustment *adj; ! GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW(window); ! adj = gtk_scrolled_window_get_hadjustment(sw); adj->step_increment = cx; gtk_adjustment_changed(adj); ! adj = gtk_scrolled_window_get_vadjustment(sw); adj->step_increment = cy; gtk_adjustment_changed(adj); } void osGetWindowLineSize(WindowHandle window, int *res) { ! GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW(window); ! res[0] = gtk_scrolled_window_get_hadjustment(sw)->step_increment; ! res[1] = gtk_scrolled_window_get_vadjustment(sw)->step_increment; } void osSetWindowPageSize(WindowHandle window, int cx, int cy) { ! GtkAdjustment *adj; ! GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW(window); ! adj = gtk_scrolled_window_get_hadjustment(sw); adj->page_increment = cx; gtk_adjustment_changed(adj); ! adj = gtk_scrolled_window_get_vadjustment(sw); adj->page_increment = cy; gtk_adjustment_changed(adj); } --- 598,652 ---- void osSetWindowScrollOrigin(WindowHandle window, int x, int y) { ! if (GTK_IS_SCROLLED_WINDOW(window)) ! { ! gtk_adjustment_set_value(gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW(window)), x); ! gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW(window)), y); ! } } void osGetWindowScrollOrigin(WindowHandle window, int *res) { ! if (GTK_IS_SCROLLED_WINDOW(window)) ! { ! res[0] = gtk_adjustment_get_value(gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW(window))); ! res[1] = gtk_adjustment_get_value(gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW(window))); ! } ! else ! { ! res[0] = 0; ! res[1] = 0; ! } } void osSetWindowLineSize(WindowHandle window, int cx, int cy) { ! if (GTK_IS_SCROLLED_WINDOW(window)) ! { ! GtkAdjustment *adj; ! GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW(window); ! adj = gtk_scrolled_window_get_hadjustment(sw); adj->step_increment = cx; gtk_adjustment_changed(adj); ! adj = gtk_scrolled_window_get_vadjustment(sw); adj->step_increment = cy; gtk_adjustment_changed(adj); ! } } void osGetWindowLineSize(WindowHandle window, int *res) { ! if (GTK_IS_SCROLLED_WINDOW(window)) ! { ! GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW(window); ! res[0] = gtk_scrolled_window_get_hadjustment(sw)->step_increment; ! res[1] = gtk_scrolled_window_get_vadjustment(sw)->step_increment; ! } } void osSetWindowPageSize(WindowHandle window, int cx, int cy) { ! if (GTK_IS_SCROLLED_WINDOW(window)) ! { ! GtkAdjustment *adj; ! GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW(window); ! adj = gtk_scrolled_window_get_hadjustment(sw); adj->page_increment = cx; gtk_adjustment_changed(adj); ! adj = gtk_scrolled_window_get_vadjustment(sw); adj->page_increment = cy; gtk_adjustment_changed(adj); ! } } *************** *** 612,634 **** void osGetWindowPageSize(WindowHandle window, int *res) { ! GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW(window); ! res[0] = gtk_scrolled_window_get_hadjustment(sw)->page_increment; ! res[1] = gtk_scrolled_window_get_vadjustment(sw)->page_increment; } void osSetWindowVisible(WindowHandle window, BOOL visible) { - GtkWidget *toplevel = gtk_widget_get_toplevel(window); - if (visible) - { gtk_widget_show(window); - if (toplevel != gFrameWidget) gtk_widget_show(toplevel); - } else - { gtk_widget_hide(window); - if (toplevel != gFrameWidget) gtk_widget_hide(toplevel); - } }; --- 654,671 ---- void osGetWindowPageSize(WindowHandle window, int *res) { ! if (GTK_IS_SCROLLED_WINDOW(window)) ! { ! GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW(window); ! res[0] = gtk_scrolled_window_get_hadjustment(sw)->page_increment; ! res[1] = gtk_scrolled_window_get_vadjustment(sw)->page_increment; ! } } void osSetWindowVisible(WindowHandle window, BOOL visible) { if (visible) gtk_widget_show(window); else gtk_widget_hide(window); }; *************** *** 640,650 **** void osRunDialog(WindowHandle window) { - GtkWidget *toplevel = gtk_widget_get_toplevel(window); - gtk_widget_show(window); - gtk_widget_show(toplevel); ! gtk_window_set_modal(GTK_WINDOW(toplevel), TRUE); ! gtk_signal_connect (GTK_OBJECT(toplevel), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL); --- 677,684 ---- void osRunDialog(WindowHandle window) { gtk_widget_show(window); ! gtk_window_set_modal(GTK_WINDOW(window), TRUE); ! gtk_signal_connect (GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL); *************** *** 655,675 **** BOOL osDismissWindow(WindowHandle window) { - GtkWidget *widget = window; - gtk_signal_connect (GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), ! &widget); ! handleWindowDismiss(widget); ! return (widget == NULL); } void osDestroyWindow(WindowHandle window) { ! GtkWidget *toplevel = gtk_widget_get_toplevel(window); ! ! if (toplevel != gFrameWidget) ! gtk_widget_destroy(toplevel); ! else ! gtk_widget_destroy(window); } --- 689,702 ---- BOOL osDismissWindow(WindowHandle window) { gtk_signal_connect (GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), ! &window); ! handleWindowDismiss(window); ! return (window == NULL); } void osDestroyWindow(WindowHandle window) { ! gtk_widget_destroy(window); } *************** *** 686,713 **** CanvasHandle osGetWindowCanvas(WindowHandle window) { - int scrollbar_spacing; GdkRectangle rectangle; CanvasHandle canvas; - - GtkRequisition child_requisition, hscrollbar_requisition, vscrollbar_requisition; GtkWidget *layout; layout = GTK_BIN(window)->child; ! rectangle.x = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW(window))->value; ! rectangle.y = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW(window))->value; ! rectangle.width = window->allocation.width; ! rectangle.height = window->allocation.height; ! gtk_widget_size_request(layout, &child_requisition); ! gtk_widget_size_request(GTK_SCROLLED_WINDOW(window)->hscrollbar, &hscrollbar_requisition); ! gtk_widget_size_request(GTK_SCROLLED_WINDOW(window)->vscrollbar, &vscrollbar_requisition); ! scrollbar_spacing = GTK_SCROLLED_WINDOW_GET_CLASS(window)->scrollbar_spacing; ! if (scrollbar_spacing < 0) scrollbar_spacing = 3; ! if (rectangle.width < child_requisition.width ) rectangle.width -= scrollbar_spacing + vscrollbar_requisition.width; ! if (rectangle.height < child_requisition.height) rectangle.height -= scrollbar_spacing + hscrollbar_requisition.height; rectangle.width -= 2*GTK_CONTAINER(window)->border_width; --- 713,750 ---- CanvasHandle osGetWindowCanvas(WindowHandle window) { GdkRectangle rectangle; CanvasHandle canvas; GtkWidget *layout; layout = GTK_BIN(window)->child; ! if (GTK_IS_SCROLLED_WINDOW(window)) ! { ! int scrollbar_spacing; ! GtkRequisition child_requisition, hscrollbar_requisition, vscrollbar_requisition; ! rectangle.x = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW(window))->value; ! rectangle.y = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW(window))->value; ! rectangle.width = window->allocation.width; ! rectangle.height = window->allocation.height; ! gtk_widget_size_request(layout, &child_requisition); ! gtk_widget_size_request(GTK_SCROLLED_WINDOW(window)->hscrollbar, &hscrollbar_requisition); ! gtk_widget_size_request(GTK_SCROLLED_WINDOW(window)->vscrollbar, &vscrollbar_requisition); ! scrollbar_spacing = GTK_SCROLLED_WINDOW_GET_CLASS(window)->scrollbar_spacing; ! if (scrollbar_spacing < 0) scrollbar_spacing = 3; ! ! if (rectangle.width < child_requisition.width ) rectangle.width -= scrollbar_spacing + vscrollbar_requisition.width; ! if (rectangle.height < child_requisition.height) rectangle.height -= scrollbar_spacing + hscrollbar_requisition.height; ! } ! else ! { ! rectangle.x = 0; ! rectangle.y = 0; ! rectangle.width = window->allocation.width; ! rectangle.height = window->allocation.height; ! } rectangle.width -= 2*GTK_CONTAINER(window)->border_width; *************** *** 874,876 **** --- 911,917 ---- handleContainerReLayout(window); + } + + void osSetDialogMinSize(WindowHandle dialog, int w, int h) + { } |