#include <gtk/gtk.h>
-#include "cellareascaffold.h"
/*******************************************************
* Grid Test *
*******************************************************/
+
+#if _GTK_TREE_MENU_WAS_A_PUBLIC_CLASS_
static GdkPixbuf *
create_color_pixbuf (const char *color)
{
GdkPixbuf *pixbuf;
- GdkColor col;
+ GdkRGBA rgba;
int x;
int num;
int rowstride;
guchar *pixels, *p;
- if (!gdk_color_parse (color, &col))
+ if (!gdk_rgba_parse (color, &col))
return NULL;
pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
gdk_pixbuf_get_height (pixbuf);
for (x = 0; x < num; x++) {
- p[0] = col.red / 65535 * 255;
- p[1] = col.green / 65535 * 255;
- p[2] = col.blue / 65535 * 255;
+ p[0] = col.red * 255;
+ p[1] = col.green * 255;
+ p[2] = col.blue * 255;
p += 3;
}
return menu;
}
+#endif
/*******************************************************
* Simple Test *
return (GtkTreeModel *)store;
}
-static GtkWidget *
-simple_tree_menu (void)
+static GtkCellArea *
+create_cell_area (void)
{
- GtkTreeModel *model;
- GtkWidget *menu;
GtkCellArea *area;
GtkCellRenderer *renderer;
- model = simple_tree_model ();
-
- menu = gtk_tree_menu_new ();
- gtk_tree_menu_set_model (GTK_TREE_MENU (menu), model);
- gtk_tree_menu_set_root (GTK_TREE_MENU (menu), NULL);
-
- area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (menu));
+ area = gtk_cell_area_box_new ();
cell_1 = renderer = gtk_cell_renderer_text_new ();
- gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, FALSE, FALSE);
+ gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, FALSE, FALSE, FALSE);
gtk_cell_area_attribute_connect (area, renderer, "text", SIMPLE_COLUMN_NAME);
cell_2 = renderer = gtk_cell_renderer_pixbuf_new ();
g_object_set (G_OBJECT (renderer), "xalign", 0.0F, NULL);
- gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, TRUE, FALSE);
+ gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, TRUE, FALSE, FALSE);
gtk_cell_area_attribute_connect (area, renderer, "stock-id", SIMPLE_COLUMN_ICON);
cell_3 = renderer = gtk_cell_renderer_text_new ();
"wrap-mode", PANGO_WRAP_WORD,
"wrap-width", 215,
NULL);
- gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, FALSE, TRUE);
+ gtk_cell_area_box_pack_start (GTK_CELL_AREA_BOX (area), renderer, FALSE, TRUE, FALSE);
gtk_cell_area_attribute_connect (area, renderer, "text", SIMPLE_COLUMN_DESCRIPTION);
+ return area;
+}
+
+#if _GTK_TREE_MENU_WAS_A_PUBLIC_CLASS_
+static GtkWidget *
+simple_tree_menu (GtkCellArea *area)
+{
+ GtkTreeModel *model;
+ GtkWidget *menu;
+
+ model = simple_tree_model ();
+
+ menu = gtk_tree_menu_new_with_area (area);
+ gtk_tree_menu_set_model (GTK_TREE_MENU (menu), model);
+
return menu;
}
+#endif
static void
orientation_changed (GtkComboBox *combo,
gtk_cell_area_cell_set (area, cell_3, "expand", expand, NULL);
}
+gboolean
+enable_submenu_headers (GtkTreeModel *model,
+ GtkTreeIter *iter,
+ gpointer data)
+{
+ return TRUE;
+}
+
+
+#if _GTK_TREE_MENU_WAS_A_PUBLIC_CLASS_
static void
menu_activated_cb (GtkTreeMenu *menu,
const gchar *path,
g_free (row_name);
}
-gboolean
-enable_submenu_headers (GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer data)
-{
- return TRUE;
-}
-
-
static void
submenu_headers_toggled (GtkToggleButton *toggle,
GtkTreeMenu *menu)
{
gtk_tree_menu_set_tearoff (menu, gtk_toggle_button_get_active (toggle));
}
+#endif
static void
tree_menu (void)
{
GtkWidget *window, *widget;
- GtkWidget *menu, *menubar, *vbox, *menuitem;
+ GtkWidget *menubar, *vbox;
GtkCellArea *area;
+ GtkTreeModel *store;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "GtkTreeMenu");
- vbox = gtk_vbox_new (FALSE, 4);
+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4);
gtk_widget_show (vbox);
menubar = gtk_menu_bar_new ();
gtk_widget_show (menubar);
+ store = simple_tree_model ();
+ area = create_cell_area ();
+
+#if _GTK_TREE_MENU_WAS_A_PUBLIC_CLASS_
menuitem = gtk_menu_item_new_with_label ("Grid");
menu = create_menu_grid_demo ();
gtk_widget_show (menu);
g_signal_connect (menu, "menu-activate", G_CALLBACK (menu_activated_cb), NULL);
gtk_box_pack_start (GTK_BOX (vbox), menubar, FALSE, FALSE, 0);
+#endif
/* Add a combo box with the same menu ! */
- area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (menu));
- widget = g_object_new (GTK_TYPE_COMBO_BOX,
- "cell-area", area,
- "model", gtk_tree_menu_get_model (GTK_TREE_MENU (menu)),
- NULL);
+ widget = gtk_combo_box_new_with_area (area);
+ gtk_combo_box_set_model (GTK_COMBO_BOX (widget), store);
gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
gtk_widget_show (widget);
gtk_box_pack_end (GTK_BOX (vbox), widget, FALSE, FALSE, 0);
g_signal_connect (G_OBJECT (widget), "toggled",
G_CALLBACK (expand_cell_3_toggled), area);
+#if _GTK_TREE_MENU_WAS_A_PUBLIC_CLASS_
widget = gtk_check_button_new_with_label ("Submenu Headers");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
gtk_widget_show (widget);
g_signal_connect (G_OBJECT (widget), "toggled",
G_CALLBACK (tearoff_toggled), menu);
+#endif
gtk_container_add (GTK_CONTAINER (window), vbox);