From: <kr_...@us...> - 2003-08-22 09:42:19
|
Update of /cvsroot/htoolkit/port/src/cbits/GTK In directory sc8-pr-cvs1:/tmp/cvs-serv5491 Modified Files: CheckBox.c RadioBox.c Window.c Log Message: Implementation for the new RadioBox API and for the CompoundControl under GNOME Index: CheckBox.c =================================================================== RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/CheckBox.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** CheckBox.c 29 Mar 2003 08:12:18 -0000 1.5 --- CheckBox.c 21 Aug 2003 19:55:05 -0000 1.6 *************** *** 1,43 **** ! #include "CheckBox.h" ! #include "Internals.h" ! #include "Handlers_stub.h" ! ! WindowHandle osCreateCheckBox(WindowHandle window, char *title) ! { ! GtkWidget *check_btn; ! gchar *szText = toMnemonicString(title); ! ! check_btn = gtk_check_button_new_with_mnemonic(szText); ! gtk_fixed_put(GTK_FIXED(GTK_BIN(GTK_BIN(window)->child)->child), check_btn, 0, 0); ! gtk_signal_connect (GTK_OBJECT (check_btn), "toggled", ! GTK_SIGNAL_FUNC(handleControlCommand), ! NULL); ! gtk_widget_show(check_btn); ! rfree(szText); ! ! return check_btn; ! }; ! ! void osGetCheckBoxReqSize(WindowHandle checkbox, int *res) ! { ! int w,h; ! GtkRequisition requisition; ! ! gtk_widget_get_size_request(checkbox, &w,&h); ! gtk_widget_set_size_request(checkbox, -1,-1); ! gtk_widget_size_request(checkbox, &requisition); ! gtk_widget_set_size_request(checkbox, w, h); ! ! res[0] = requisition.width; ! res[1] = requisition.height; ! }; ! ! BOOL osGetCheckBoxState(WindowHandle checkbox) ! { ! return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbox)); ! }; ! ! void osSetCheckBoxState(WindowHandle checkbox, BOOL state) ! { ! gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), state); ! }; --- 1,55 ---- ! #include "CheckBox.h" ! #include "Internals.h" ! #include "Handlers_stub.h" ! ! WindowHandle osCreateCheckBox(WindowHandle window) ! { ! GtkWidget *check_btn; ! ! check_btn = gtk_check_button_new_with_mnemonic(""); ! gtk_fixed_put(GTK_FIXED(GTK_BIN(GTK_BIN(window)->child)->child), check_btn, 0, 0); ! gtk_signal_connect (GTK_OBJECT (check_btn), "toggled", ! GTK_SIGNAL_FUNC(handleControlCommand), ! NULL); ! gtk_widget_show(check_btn); ! ! return check_btn; ! }; ! ! void osGetCheckBoxReqSize(WindowHandle checkbox, int *res) ! { ! int w,h; ! GtkRequisition requisition; ! ! gtk_widget_get_size_request(checkbox, &w,&h); ! gtk_widget_set_size_request(checkbox, -1,-1); ! gtk_widget_size_request(checkbox, &requisition); ! gtk_widget_set_size_request(checkbox, w, h); ! ! res[0] = requisition.width; ! res[1] = requisition.height; ! }; ! ! char *osGetCheckBoxText(WindowHandle button) ! { ! return fromMnemonicString(gtk_button_get_label(GTK_BUTTON(button))); ! }; ! ! void osSetCheckBoxText(WindowHandle button, char *txt) ! { ! gchar *szText = toMnemonicString(txt); ! GtkWidget *window = gtk_widget_get_parent(gtk_widget_get_parent(gtk_widget_get_parent(button))); ! gtk_button_set_label(GTK_BUTTON(button), szText); ! handleWindowReLayout(window); ! rfree(szText); ! }; ! ! BOOL osGetCheckBoxState(WindowHandle checkbox) ! { ! return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbox)); ! }; ! ! void osSetCheckBoxState(WindowHandle checkbox, BOOL state) ! { ! gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), state); ! }; Index: RadioBox.c =================================================================== RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/RadioBox.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** RadioBox.c 29 Mar 2003 08:12:18 -0000 1.5 --- RadioBox.c 21 Aug 2003 19:55:05 -0000 1.6 *************** *** 1,56 **** ! #include "RadioBox.h" ! #include "Internals.h" ! #include "Handlers_stub.h" ! ! static GtkWidget *last_radio = NULL; ! ! WindowHandle osCreateRadioBox(WindowHandle window, BOOL isFirst, char *title) ! { ! GtkWidget *radio_btn; ! gchar *szText = toMnemonicString(title); ! ! if (isFirst) ! { ! radio_btn = gtk_radio_button_new_with_mnemonic (NULL, szText); ! } ! else ! { ! radio_btn = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(last_radio),szText); ! } ! ! gtk_fixed_put(GTK_FIXED(GTK_BIN(GTK_BIN(window)->child)->child), radio_btn, 0, 0); ! gtk_signal_connect (GTK_OBJECT (radio_btn), "toggled", ! GTK_SIGNAL_FUNC(handleControlCommand), ! NULL); ! gtk_widget_show(radio_btn); ! rfree(szText); ! ! last_radio = radio_btn; ! ! return radio_btn; ! }; ! ! void osGetRadioBoxReqSize(WindowHandle radio, int *res) ! { ! int w,h; ! GtkRequisition requisition; ! ! gtk_widget_get_size_request(radio, &w,&h); ! gtk_widget_set_size_request(radio, -1,-1); ! gtk_widget_size_request(radio, &requisition); ! gtk_widget_set_size_request(radio, w, h); ! ! res[0] = requisition.width; ! res[1] = requisition.height; ! }; ! ! BOOL osGetRadioBoxState(WindowHandle radio) ! { ! return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio)); ! }; ! ! void osSetRadioBoxState(WindowHandle radio, BOOL state) ! { ! gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), state); ! GTK_TOGGLE_BUTTON(radio)->active = state; ! }; --- 1,69 ---- ! #include "RadioBox.h" ! #include "Internals.h" ! #include "Handlers_stub.h" ! ! WindowHandle osCreateRadioBox(WindowHandle window) ! { ! GtkWidget *radio_btn; ! ! radio_btn = gtk_radio_button_new_with_mnemonic (NULL, ""); ! ! gtk_fixed_put(GTK_FIXED(GTK_BIN(GTK_BIN(window)->child)->child), radio_btn, 0, 0); ! gtk_signal_connect (GTK_OBJECT (radio_btn), "toggled", ! GTK_SIGNAL_FUNC(handleControlCommand), ! NULL); ! gtk_widget_show(radio_btn); ! ! return radio_btn; ! }; ! ! void osGetRadioBoxReqSize(WindowHandle radio, int *res) ! { ! int w,h; ! GtkRequisition requisition; ! ! gtk_widget_get_size_request(radio, &w,&h); ! gtk_widget_set_size_request(radio, -1,-1); ! gtk_widget_size_request(radio, &requisition); ! gtk_widget_set_size_request(radio, w, h); ! ! res[0] = requisition.width; ! res[1] = requisition.height; ! }; ! ! char *osGetRadioBoxText(WindowHandle button) ! { ! return fromMnemonicString(gtk_button_get_label(GTK_BUTTON(button))); ! }; ! ! void osSetRadioBoxText(WindowHandle button, char *txt) ! { ! gchar *szText = toMnemonicString(txt); ! GtkWidget *window = gtk_widget_get_parent(gtk_widget_get_parent(gtk_widget_get_parent(button))); ! gtk_button_set_label(GTK_BUTTON(button), szText); ! handleWindowReLayout(window); ! rfree(szText); ! }; ! ! BOOL osGetRadioBoxState(WindowHandle radio) ! { ! return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio)); ! }; ! ! void osSetRadioBoxState(WindowHandle radio, BOOL state) ! { ! gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), state); ! GTK_TOGGLE_BUTTON(radio)->active = state; ! }; ! ! void osSetRadioBoxGroup(WindowHandle *handles) ! { ! WindowHandle *phandle; ! GSList *group = NULL; ! ! for (phandle = handles; *phandle; phandle++) ! { ! gtk_radio_button_set_group(GTK_RADIO_BUTTON(*phandle), group); ! group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(*phandle)); ! } ! } Index: Window.c =================================================================== RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/Window.c,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** Window.c 16 Jul 2003 21:59:24 -0000 1.25 --- Window.c 21 Aug 2003 19:55:05 -0000 1.26 *************** *** 271,275 **** gnome_app_set_contents(GNOME_APP(gFrameWidget),sw); } ! gtk_widget_realize(viewport); gdk_window_set_events(viewport->window, gdk_window_get_events(viewport->window) --- 271,275 ---- gnome_app_set_contents(GNOME_APP(gFrameWidget),sw); } ! gtk_widget_realize(viewport); gdk_window_set_events(viewport->window, gdk_window_get_events(viewport->window) *************** *** 396,404 **** gtk_container_add(GTK_CONTAINER(frame), sw); ! gtk_widget_realize(viewport); gdk_window_set_events(viewport->window, gdk_window_get_events(viewport->window) | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); return sw; } --- 396,429 ---- gtk_container_add(GTK_CONTAINER(frame), sw); ! gtk_widget_realize(viewport); gdk_window_set_events(viewport->window, gdk_window_get_events(viewport->window) | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); return sw; + } + + WindowHandle osCreateCompoundControl(WindowHandle form) + { + GtkWidget *sw, *viewport; + + sw = create_generic_window(); + gtk_fixed_put(GTK_FIXED(GTK_BIN(GTK_BIN(form)->child)->child), sw, 0, 0); + + viewport = GTK_BIN(sw)->child; + gtk_widget_realize(viewport); + gdk_window_set_events(viewport->window, gdk_window_get_events(viewport->window) + | GDK_BUTTON_RELEASE_MASK + | GDK_POINTER_MOTION_MASK + | GDK_ENTER_NOTIFY_MASK + | GDK_LEAVE_NOTIFY_MASK); + gtk_widget_show_all(sw); + + return sw; + } + + void osGetCompoundControlReqSize(WindowHandle listbox, int *res) + { + res[0] = 10; + res[1] = 10; } |