diff --git a/ChangeLog b/ChangeLog index 9666de47dd..4066cb70b4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +Fri Oct 10 19:10:12 2003 Kristian Rietveld + + * gtk/gtkcombo.h: Deprecate. + * gtk/gtkoptionmenu.h: Ditto. + + * gtk/gtkcombobox.c (gtk_combo_box_size_request), + (gtk_combo_box_size_allocate): Rework, things behave better now. Still + needs some work on requesting enough size when taking the items in + the list into account. + + * gtk/gtkfilesel.c: put gtkoptionmenu.h include inside "enable + deprecated" guards. + * gtk/gtkinputdialog.c: ditto. + * gtk/gtkitemfactory.c: ditto. + * gtk/gtkoptionmenu.c: ditto. + + * demos/gtk-demo/menus.c: remove the option menu. + * demos/gtk-demo/sizegroup.c: replace the option menus with + GtkComboBox. + * demos/gtk-demo/textview.c: ditto. + (A general GtkComboBox demo will be added later on). + Wed Oct 8 00:06:17 2003 Matthias Clasen * demos/gtk-demo/ui_manager.c (activate_radio_action): New diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 9666de47dd..4066cb70b4 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,25 @@ +Fri Oct 10 19:10:12 2003 Kristian Rietveld + + * gtk/gtkcombo.h: Deprecate. + * gtk/gtkoptionmenu.h: Ditto. + + * gtk/gtkcombobox.c (gtk_combo_box_size_request), + (gtk_combo_box_size_allocate): Rework, things behave better now. Still + needs some work on requesting enough size when taking the items in + the list into account. + + * gtk/gtkfilesel.c: put gtkoptionmenu.h include inside "enable + deprecated" guards. + * gtk/gtkinputdialog.c: ditto. + * gtk/gtkitemfactory.c: ditto. + * gtk/gtkoptionmenu.c: ditto. + + * demos/gtk-demo/menus.c: remove the option menu. + * demos/gtk-demo/sizegroup.c: replace the option menus with + GtkComboBox. + * demos/gtk-demo/textview.c: ditto. + (A general GtkComboBox demo will be added later on). + Wed Oct 8 00:06:17 2003 Matthias Clasen * demos/gtk-demo/ui_manager.c (activate_radio_action): New diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 9666de47dd..4066cb70b4 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,25 @@ +Fri Oct 10 19:10:12 2003 Kristian Rietveld + + * gtk/gtkcombo.h: Deprecate. + * gtk/gtkoptionmenu.h: Ditto. + + * gtk/gtkcombobox.c (gtk_combo_box_size_request), + (gtk_combo_box_size_allocate): Rework, things behave better now. Still + needs some work on requesting enough size when taking the items in + the list into account. + + * gtk/gtkfilesel.c: put gtkoptionmenu.h include inside "enable + deprecated" guards. + * gtk/gtkinputdialog.c: ditto. + * gtk/gtkitemfactory.c: ditto. + * gtk/gtkoptionmenu.c: ditto. + + * demos/gtk-demo/menus.c: remove the option menu. + * demos/gtk-demo/sizegroup.c: replace the option menus with + GtkComboBox. + * demos/gtk-demo/textview.c: ditto. + (A general GtkComboBox demo will be added later on). + Wed Oct 8 00:06:17 2003 Matthias Clasen * demos/gtk-demo/ui_manager.c (activate_radio_action): New diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 9666de47dd..4066cb70b4 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,25 @@ +Fri Oct 10 19:10:12 2003 Kristian Rietveld + + * gtk/gtkcombo.h: Deprecate. + * gtk/gtkoptionmenu.h: Ditto. + + * gtk/gtkcombobox.c (gtk_combo_box_size_request), + (gtk_combo_box_size_allocate): Rework, things behave better now. Still + needs some work on requesting enough size when taking the items in + the list into account. + + * gtk/gtkfilesel.c: put gtkoptionmenu.h include inside "enable + deprecated" guards. + * gtk/gtkinputdialog.c: ditto. + * gtk/gtkitemfactory.c: ditto. + * gtk/gtkoptionmenu.c: ditto. + + * demos/gtk-demo/menus.c: remove the option menu. + * demos/gtk-demo/sizegroup.c: replace the option menus with + GtkComboBox. + * demos/gtk-demo/textview.c: ditto. + (A general GtkComboBox demo will be added later on). + Wed Oct 8 00:06:17 2003 Matthias Clasen * demos/gtk-demo/ui_manager.c (activate_radio_action): New diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 9666de47dd..4066cb70b4 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,25 @@ +Fri Oct 10 19:10:12 2003 Kristian Rietveld + + * gtk/gtkcombo.h: Deprecate. + * gtk/gtkoptionmenu.h: Ditto. + + * gtk/gtkcombobox.c (gtk_combo_box_size_request), + (gtk_combo_box_size_allocate): Rework, things behave better now. Still + needs some work on requesting enough size when taking the items in + the list into account. + + * gtk/gtkfilesel.c: put gtkoptionmenu.h include inside "enable + deprecated" guards. + * gtk/gtkinputdialog.c: ditto. + * gtk/gtkitemfactory.c: ditto. + * gtk/gtkoptionmenu.c: ditto. + + * demos/gtk-demo/menus.c: remove the option menu. + * demos/gtk-demo/sizegroup.c: replace the option menus with + GtkComboBox. + * demos/gtk-demo/textview.c: ditto. + (A general GtkComboBox demo will be added later on). + Wed Oct 8 00:06:17 2003 Matthias Clasen * demos/gtk-demo/ui_manager.c (activate_radio_action): New diff --git a/demos/gtk-demo/menus.c b/demos/gtk-demo/menus.c index eb4df916f7..9ab61af350 100644 --- a/demos/gtk-demo/menus.c +++ b/demos/gtk-demo/menus.c @@ -19,9 +19,6 @@ * up when the menu item is selected. Typically, all menu items in a menu bar * have submenus. * - * The GtkOptionMenu widget is a button that pops up a GtkMenu when clicked. - * It's used inside dialogs and such. - * * GtkItemFactory provides a higher-level interface for creating menu bars * and menus; while you can construct menus manually, most people don't * do that. There's a separate demo for GtkItemFactory. @@ -130,62 +127,6 @@ do_menus (void) gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); gtk_widget_show (menuitem); - box2 = gtk_vbox_new (FALSE, 10); - gtk_container_set_border_width (GTK_CONTAINER (box2), 10); - gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); - gtk_widget_show (box2); - - menu = create_menu (1, FALSE); - gtk_menu_set_accel_group (GTK_MENU (menu), accel_group); - - menuitem = gtk_separator_menu_item_new (); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); - gtk_widget_show (menuitem); - - menuitem = gtk_check_menu_item_new_with_label ("Accelerate Me"); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); - gtk_widget_show (menuitem); - gtk_widget_add_accelerator (menuitem, - "activate", - accel_group, - GDK_F1, - 0, - GTK_ACCEL_VISIBLE); - menuitem = gtk_check_menu_item_new_with_label ("Accelerator Locked"); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); - gtk_widget_show (menuitem); - gtk_widget_add_accelerator (menuitem, - "activate", - accel_group, - GDK_F2, - 0, - GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED); - menuitem = gtk_check_menu_item_new_with_label ("Accelerators Frozen"); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); - gtk_widget_show (menuitem); - gtk_widget_add_accelerator (menuitem, - "activate", - accel_group, - GDK_F2, - 0, - GTK_ACCEL_VISIBLE); - gtk_widget_add_accelerator (menuitem, - "activate", - accel_group, - GDK_F3, - 0, - GTK_ACCEL_VISIBLE); - - optionmenu = gtk_option_menu_new (); - gtk_option_menu_set_menu (GTK_OPTION_MENU (optionmenu), menu); - gtk_option_menu_set_history (GTK_OPTION_MENU (optionmenu), 3); - gtk_box_pack_start (GTK_BOX (box2), optionmenu, TRUE, TRUE, 0); - gtk_widget_show (optionmenu); - - separator = gtk_hseparator_new (); - gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - gtk_widget_show (separator); - box2 = gtk_vbox_new (FALSE, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); diff --git a/demos/gtk-demo/sizegroup.c b/demos/gtk-demo/sizegroup.c index 930a0d61f8..e2fa1705d2 100644 --- a/demos/gtk-demo/sizegroup.c +++ b/demos/gtk-demo/sizegroup.c @@ -17,29 +17,22 @@ static GtkWidget *window = NULL; -/* Convenience function to create an option menu holding a number of strings +/* Convenience function to create a combo box holding a number of strings */ GtkWidget * -create_option_menu (const char **strings) +create_combo_box (const char **strings) { - GtkWidget *menu; - GtkWidget *option_menu; + GtkWidget *combo_box; const char **str; - menu = gtk_menu_new (); + combo_box = gtk_combo_box_new_text (); for (str = strings; *str; str++) - { - GtkWidget *menu_item = gtk_menu_item_new_with_label (*str); - gtk_widget_show (menu_item); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), *str); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); - } + gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0); - option_menu = gtk_option_menu_new (); - gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu); - - return option_menu; + return combo_box; } static void @@ -49,7 +42,7 @@ add_row (GtkTable *table, const char *label_text, const char **options) { - GtkWidget *option_menu; + GtkWidget *combo_box; GtkWidget *label; label = gtk_label_new_with_mnemonic (label_text); @@ -59,10 +52,10 @@ add_row (GtkTable *table, GTK_EXPAND | GTK_FILL, 0, 0, 0); - option_menu = create_option_menu (options); - gtk_label_set_mnemonic_widget (GTK_LABEL (label), option_menu); - gtk_size_group_add_widget (size_group, option_menu); - gtk_table_attach (GTK_TABLE (table), option_menu, + combo_box = create_combo_box (options); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo_box); + gtk_size_group_add_widget (size_group, combo_box); + gtk_table_attach (GTK_TABLE (table), combo_box, 1, 2, row, row + 1, 0, 0, 0, 0); diff --git a/demos/gtk-demo/textview.c b/demos/gtk-demo/textview.c index fbec120b4b..f331ffa9f4 100644 --- a/demos/gtk-demo/textview.c +++ b/demos/gtk-demo/textview.c @@ -399,21 +399,11 @@ attach_widgets (GtkTextView *text_view) } else if (i == 1) { - GtkWidget *menu_item; - GtkWidget *menu; + widget = gtk_combo_box_new_text (); - menu = gtk_menu_new (); - - widget = gtk_option_menu_new (); - - menu_item = gtk_menu_item_new_with_label ("Option 1"); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); - menu_item = gtk_menu_item_new_with_label ("Option 2"); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); - menu_item = gtk_menu_item_new_with_label ("Option 3"); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); - - gtk_option_menu_set_menu (GTK_OPTION_MENU (widget), menu); + gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 1"); + gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 2"); + gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 3"); } else if (i == 2) { diff --git a/gtk/gtkcombo.h b/gtk/gtkcombo.h index b3cea09f6c..9652dc2741 100644 --- a/gtk/gtkcombo.h +++ b/gtk/gtkcombo.h @@ -24,6 +24,8 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ +#ifndef GTK_DISABLE_DEPRECATED + #ifndef __GTK_SMART_COMBO_H__ #define __GTK_SMART_COMBO_H__ @@ -117,4 +119,4 @@ void gtk_combo_disable_activate (GtkCombo* combo); #endif /* __GTK_SMART_COMBO_H__ */ - +#endif /* GTK_DISABLE_DEPRECATED */ diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index 37115eea31..1c0fbeb848 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -891,14 +891,7 @@ gtk_combo_box_size_request (GtkWidget *widget, bin_req.width = MAX (bin_req.width, combo_box->priv->width); - /* separator */ - gtk_widget_set_size_request (combo_box->priv->separator, - -1, bin_req.height); gtk_widget_size_request (combo_box->priv->separator, &sep_req); - - /* arrow */ - gtk_widget_set_size_request (combo_box->priv->arrow, - -1, bin_req.height); gtk_widget_size_request (combo_box->priv->arrow, &arrow_req); height = MAX (sep_req.height, arrow_req.height); @@ -909,15 +902,13 @@ gtk_combo_box_size_request (GtkWidget *widget, height += border_width + 1 + xthickness * 2 + 4; width += border_width + 1 + ythickness * 2 + 4; - gtk_widget_set_size_request (combo_box->priv->button, width, height); - gtk_widget_size_request (combo_box->priv->button, requisition); + requisition->width = width; + requisition->height = height; } else { GtkRequisition but_req; - gtk_widget_set_size_request (combo_box->priv->button, - -1, bin_req.height); gtk_widget_size_request (combo_box->priv->button, &but_req); requisition->width = bin_req.width + but_req.width; @@ -934,17 +925,15 @@ gtk_combo_box_size_request (GtkWidget *widget, if (combo_box->priv->cell_view_frame) { - requisition->width += + requisition->width += 2 * (GTK_CONTAINER (combo_box->priv->cell_view_frame)->border_width + - GTK_WIDGET (combo_box->priv->cell_view_frame)->style->xthickness) * 2; - requisition->height += + GTK_WIDGET (combo_box->priv->cell_view_frame)->style->xthickness); + requisition->height += 2 * (GTK_CONTAINER (combo_box->priv->cell_view_frame)->border_width + - GTK_WIDGET (combo_box->priv->cell_view_frame)->style->ythickness) * 2; + GTK_WIDGET (combo_box->priv->cell_view_frame)->style->ythickness); } /* the button */ - gtk_widget_set_size_request (combo_box->priv->button, - -1, requisition->height); gtk_widget_size_request (combo_box->priv->button, &button_req); requisition->height = MAX (requisition->height, button_req.height); @@ -985,13 +974,12 @@ gtk_combo_box_size_allocate (GtkWidget *widget, /* handle the childs */ gtk_widget_size_request (combo_box->priv->arrow, &req); child.width = req.width; - child.height = req.height; + child.height = allocation->height - 2 * (child.y - allocation->y); child.x += width - req.width; gtk_widget_size_allocate (combo_box->priv->arrow, &child); gtk_widget_size_request (combo_box->priv->separator, &req); child.width = req.width; - child.height = req.height; child.x -= req.width; gtk_widget_size_allocate (combo_box->priv->separator, &child); @@ -999,8 +987,6 @@ gtk_combo_box_size_allocate (GtkWidget *widget, child.x = allocation->x + border_width + 1 + xthickness + 2; child.width -= child.x; - gtk_widget_size_request (GTK_BIN (widget)->child, &req); - child.height = req.height; gtk_widget_size_allocate (GTK_BIN (widget)->child, &child); } else @@ -1027,13 +1013,14 @@ gtk_combo_box_size_allocate (GtkWidget *widget, child.x = allocation->x + allocation->width - req.width; child.y = allocation->y; child.width = req.width; - child.height = req.height; + child.height = allocation->height; gtk_widget_size_allocate (combo_box->priv->button, &child); /* frame */ child.x = allocation->x; child.y = allocation->y; child.width = allocation->width - req.width; + child.height = allocation->height; if (combo_box->priv->cell_view_frame) { @@ -1046,12 +1033,12 @@ gtk_combo_box_size_allocate (GtkWidget *widget, child.y += GTK_CONTAINER (combo_box->priv->cell_view_frame)->border_width + GTK_WIDGET (combo_box->priv->cell_view_frame)->style->ythickness; - child.width -= + child.width -= 2 * ( GTK_CONTAINER (combo_box->priv->cell_view_frame)->border_width + - GTK_WIDGET (combo_box->priv->cell_view_frame)->style->xthickness; - child.height -= + GTK_WIDGET (combo_box->priv->cell_view_frame)->style->xthickness); + child.height -= 2 * ( GTK_CONTAINER (combo_box->priv->cell_view_frame)->border_width + - GTK_WIDGET (combo_box->priv->cell_view_frame)->style->ythickness; + GTK_WIDGET (combo_box->priv->cell_view_frame)->style->ythickness); } gtk_widget_size_allocate (GTK_BIN (combo_box)->child, &child); diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c index 90e8e2b467..e2fcb465df 100644 --- a/gtk/gtkfilesel.c +++ b/gtk/gtkfilesel.c @@ -73,12 +73,15 @@ #include "gtkvbox.h" #include "gtkmenu.h" #include "gtkmenuitem.h" -#include "gtkoptionmenu.h" #include "gtkdialog.h" #include "gtkmessagedialog.h" #include "gtkdnd.h" #include "gtkeventbox.h" +#undef GTK_DISABLE_DEPRECATED +#include "gtkoptionmenu.h" +#define GTK_DISABLE_DEPRECATED + #define WANT_HPANED 1 #include "gtkhpaned.h" diff --git a/gtk/gtkinputdialog.c b/gtk/gtkinputdialog.c index 1e59f643e7..cbbda5ca95 100644 --- a/gtk/gtkinputdialog.c +++ b/gtk/gtkinputdialog.c @@ -47,12 +47,15 @@ #include "gtkmenu.h" #include "gtkmenuitem.h" #include "gtknotebook.h" -#include "gtkoptionmenu.h" #include "gtkscrolledwindow.h" #include "gtkstock.h" #include "gtktable.h" #include "gtkvbox.h" +#undef GTK_DISABLE_DEPRECATED +#include "gtkoptionmenu.h" +#define GTK_DISABLE_DEPRECATED + #include "gtkintl.h" typedef struct _GtkInputDialogPrivate GtkInputDialogPrivate; diff --git a/gtk/gtkitemfactory.c b/gtk/gtkitemfactory.c index 6e79c5e33f..5fcb63eeb4 100644 --- a/gtk/gtkitemfactory.c +++ b/gtk/gtkitemfactory.c @@ -30,7 +30,6 @@ #include "config.h" #include "gtkitemfactory.h" -#include "gtk/gtkoptionmenu.h" #include "gtk/gtkmenubar.h" #include "gtk/gtkmenu.h" #include "gtk/gtkmenuitem.h" @@ -51,6 +50,10 @@ #endif #include +#undef GTK_DISABLE_DEPRECATED +#include "gtk/gtkoptionmenu.h" +#define GTK_DISABLE_DEPRECATED + /* --- defines --- */ #define ITEM_FACTORY_STRING ((gchar*) item_factory_string) #define ITEM_BLOCK_SIZE (128) diff --git a/gtk/gtkoptionmenu.c b/gtk/gtkoptionmenu.c index afab0ab130..2c8dac1236 100644 --- a/gtk/gtkoptionmenu.c +++ b/gtk/gtkoptionmenu.c @@ -27,10 +27,12 @@ #include "gtkintl.h" #include "gtkmenu.h" #include "gtkmenuitem.h" -#include "gtkoptionmenu.h" #include "gtkmarshalers.h" #include "gdk/gdkkeysyms.h" +#undef GTK_DISABLE_DEPRECATED +#include "gtkoptionmenu.h" +#define GTK_DISABLE_DEPRECATED #define CHILD_LEFT_SPACING 4 #define CHILD_RIGHT_SPACING 1 diff --git a/gtk/gtkoptionmenu.h b/gtk/gtkoptionmenu.h index e692ca0882..41d4d9c482 100644 --- a/gtk/gtkoptionmenu.h +++ b/gtk/gtkoptionmenu.h @@ -24,6 +24,8 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ +#ifndef GTK_DISABLE_DEPRECATED + #ifndef __GTK_OPTION_MENU_H__ #define __GTK_OPTION_MENU_H__ @@ -90,3 +92,5 @@ void gtk_option_menu_set_history (GtkOptionMenu *option_menu, #endif /* __GTK_OPTION_MENU_H__ */ + +#endif /* GTK_DISABLE_DEPRECATED */