Index: gtk/src/rbgtkimage.c
===================================================================
RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtkimage.c,v
retrieving revision 1.19
diff -u -r1.19 rbgtkimage.c
--- gtk/src/rbgtkimage.c	9 Jan 2005 19:02:05 -0000	1.19
+++ gtk/src/rbgtkimage.c	19 Aug 2005 22:17:38 -0000
@@ -123,12 +123,25 @@
 
 */
 
+#if GTK_CHECK_VERSION(2,8,0)
+static VALUE
+image_clear(self)
+    VALUE self;
+{
+    gtk_image_clear(_SELF(self));
+    return self;
+}
+#endif
+
 void 
 Init_gtk_image()
 {
     VALUE gImage = G_DEF_CLASS(GTK_TYPE_IMAGE, "Image", mGtk);
     rb_define_method(gImage, "initialize", image_initialize, -1);
     rb_define_method(gImage, "set", image_set, -1);
+#if GTK_CHECK_VERSION(2,8,0)
+    rb_define_method(gImage, "clear", image_clear, 0);
+#endif
 
     /* GtkImageType */
     G_DEF_CLASS(GTK_TYPE_IMAGE_TYPE, "Type", gImage);
Index: gtk/src/rbgtkmenubar.c
===================================================================
RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtkmenubar.c,v
retrieving revision 1.11
diff -u -r1.11 rbgtkmenubar.c
--- gtk/src/rbgtkmenubar.c	1 Feb 2003 16:46:23 -0000	1.11
+++ gtk/src/rbgtkmenubar.c	19 Aug 2005 22:17:38 -0000
@@ -22,9 +22,27 @@
     return Qnil;
 }
 
+/* Defined as property
+void        gtk_menu_bar_set_pack_direction (GtkMenuBar *menubar,
+                                             GtkPackDirection pack_dir);
+GtkPackDirection gtk_menu_bar_get_pack_direction
+                                            (GtkMenuBar *menubar);
+void        gtk_menu_bar_set_child_pack_direction
+                                            (GtkMenuBar *menubar,
+                                             GtkPackDirection child_pack_dir);
+GtkPackDirection gtk_menu_bar_get_child_pack_direction
+                                            (GtkMenuBar *menubar);
+*/
+
 void 
 Init_gtk_menu_bar()
 {
     VALUE gMenuBar = G_DEF_CLASS(GTK_TYPE_MENU_BAR, "MenuBar", mGtk);
     rb_define_method(gMenuBar, "initialize", mbar_initialize, 0);
+
+#if GTK_CHECK_VERSION(2,8,0)
+    /* GtkPackDirection */
+    G_DEF_CLASS(GTK_TYPE_PACK_DIRECTION, "PackDirection", gMenuBar);
+    G_DEF_CONSTANTS(gMenuBar, GTK_TYPE_IMAGE_TYPE, "GTK_PACK_DIRECTION_");
+#endif
 }
Index: gtk/src/rbgtkmenushell.c
===================================================================
RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtkmenushell.c,v
retrieving revision 1.16
diff -u -r1.16 rbgtkmenushell.c
--- gtk/src/rbgtkmenushell.c	19 Jun 2004 16:21:34 -0000	1.16
+++ gtk/src/rbgtkmenushell.c	19 Aug 2005 22:17:38 -0000
@@ -84,6 +84,7 @@
                                  RTEST(force_deactivate));
     return self;
 }
+
 #if GTK_CHECK_VERSION(2,4,0)
 static VALUE
 mshell_cancel(self)
@@ -93,6 +94,13 @@
     return self;
 }
 #endif
+
+/* Defined as properties
+void        gtk_menu_shell_set_take_focus   (GtkMenuShell *menu_shell,
+                                             gboolean take_focus);
+gboolean    gtk_menu_shell_get_take_focus   (GtkMenuShell *menu_shell);
+*/
+
 void 
 Init_gtk_menu_shell()
 {
Index: gtk/src/rbgtkscrolledwindow.c
===================================================================
RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtkscrolledwindow.c,v
retrieving revision 1.11
diff -u -r1.11 rbgtkscrolledwindow.c
--- gtk/src/rbgtkscrolledwindow.c	31 Aug 2003 15:29:44 -0000	1.11
+++ gtk/src/rbgtkscrolledwindow.c	19 Aug 2005 22:17:38 -0000
@@ -65,6 +65,24 @@
     return self;
 }
 
+#if GTK_CHECK_VERSION(2,8,0)
+static VALUE
+scwin_get_hscrollbar(self)
+    VALUE self;
+{
+    GtkWidget* hscrollbar = gtk_scrolled_window_get_hscrollbar(GTK_SCROLLED_WINDOW(RVAL2GOBJ(self)));
+    return GOBJ2RVAL(hscrollbar);
+}
+
+static VALUE
+scwin_get_vscrollbar(self)
+    VALUE self;
+{
+    GtkWidget* vscrollbar = gtk_scrolled_window_get_vscrollbar(GTK_SCROLLED_WINDOW(RVAL2GOBJ(self)));
+    return GOBJ2RVAL(vscrollbar);
+}
+#endif
+
 
 void 
 Init_gtk_scrolled_window()
@@ -75,4 +93,8 @@
     rb_define_method(gScrolledWin, "set_policy", scwin_set_policy, 2);
     rb_define_method(gScrolledWin, "policy", scwin_get_policy, 0);
     rb_define_method(gScrolledWin, "add_with_viewport", scwin_add_with_viewport, 1);
+#if GTK_CHECK_VERSION(2,8,0)
+    rb_define_method(gScrolledWin, "hscrollbar", scwin_get_hscrollbar, 0);
+    rb_define_method(gScrolledWin, "vscrollbar", scwin_get_vscrollbar, 0);
+#endif
 }
Index: gtk/src/rbgtksizegroup.c
===================================================================
RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtksizegroup.c,v
retrieving revision 1.6
diff -u -r1.6 rbgtksizegroup.c
--- gtk/src/rbgtksizegroup.c	30 Jul 2005 10:24:57 -0000	1.6
+++ gtk/src/rbgtksizegroup.c	19 Aug 2005 22:17:38 -0000
@@ -37,6 +37,14 @@
     return self;
 }
 
+/* Defined as properties
+void        gtk_size_group_set_ignore_hidden
+                                            (GtkSizeGroup *size_group,
+                                             gboolean ignore_hidden);
+gboolean    gtk_size_group_get_ignore_hidden
+                                            (GtkSizeGroup *size_group);
+*/
+
 void
 Init_sizegrp()
 {
Index: gtk/src/rbgtkstock.c
===================================================================
RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtkstock.c,v
retrieving revision 1.7
diff -u -r1.7 rbgtkstock.c
--- gtk/src/rbgtkstock.c	9 Jan 2005 19:02:05 -0000	1.7
+++ gtk/src/rbgtkstock.c	19 Aug 2005 22:17:38 -0000
@@ -8,7 +8,8 @@
 
   Copyright (C) 2002,2003 KUBO Takehiro
 ************************************************/
-#include "rbgtk.h"
+
+#include "global.h"
 
 #define Check_Symbol(sym) do { \
     if (!SYMBOL_P(sym)) \
@@ -72,6 +73,31 @@
     return ary;
 }
 
+#if GTK_CHECK_VERSION(2,8,0)
+static gchar*
+translate_func(path, func)
+    const gchar* path;
+    gpointer func;
+{
+    VALUE ret = rb_funcall((VALUE)func, id_call, 1, CSTR2RVAL(path));
+    return RVAL2CSTR(ret);
+}
+
+static VALUE
+stock_m_set_translate_func(klass, domain)
+    VALUE klass;
+    VALUE domain;
+{
+    VALUE func = G_BLOCK_PROC();
+    G_RELATIVE(klass, func);
+    gtk_stock_set_translate_func(RVAL2CSTR(domain),
+                                 (GtkTranslateFunc)translate_func, 
+                                 (gpointer)func,
+                                 NULL);
+    return Qnil;
+}
+#endif
+
 void
 Init_gtk_stock()
 {
@@ -81,6 +107,9 @@
     rb_define_singleton_method(mGtkStock, "add", stock_m_add, -1);
     rb_define_singleton_method(mGtkStock, "lookup", stock_m_lookup, 1);
     rb_define_singleton_method(mGtkStock, "ids", stock_m_list_ids, 0);
+#if GTK_CHECK_VERSION(2,8,0)
+    rb_define_singleton_method(mGtkStock, "set_translate_func", stock_m_set_translate_func, 1);
+#endif
 
     /* Stock IDs (not all are stock items; some are images only) */
 #if GTK_CHECK_VERSION(2,6,0)
@@ -125,6 +154,9 @@
     rb_define_const(mGtkStock, "FIND", CSTR2SYM(GTK_STOCK_FIND));
     rb_define_const(mGtkStock, "FIND_AND_REPLACE", CSTR2SYM(GTK_STOCK_FIND_AND_REPLACE));
     rb_define_const(mGtkStock, "FLOPPY", CSTR2SYM(GTK_STOCK_FLOPPY));
+#if GTK_CHECK_VERSION(2,8,0)
+    rb_define_const(mGtkStock, "FULLSCREEN", CSTR2SYM(GTK_STOCK_FULLSCREEN));
+#endif
     rb_define_const(mGtkStock, "GOTO_BOTTOM", CSTR2SYM(GTK_STOCK_GOTO_BOTTOM));
     rb_define_const(mGtkStock, "GOTO_FIRST", CSTR2SYM(GTK_STOCK_GOTO_FIRST));
     rb_define_const(mGtkStock, "GOTO_LAST", CSTR2SYM(GTK_STOCK_GOTO_LAST));
@@ -141,6 +173,9 @@
 #if GTK_CHECK_VERSION(2,4,0)
     rb_define_const(mGtkStock, "INDENT", CSTR2SYM(GTK_STOCK_INDENT));
 #endif
+#if GTK_CHECK_VERSION(2,8,0)
+    rb_define_const(mGtkStock, "INFO", CSTR2SYM(GTK_STOCK_INFO));
+#endif
     rb_define_const(mGtkStock, "INDEX", CSTR2SYM(GTK_STOCK_INDEX));
     rb_define_const(mGtkStock, "ITALIC", CSTR2SYM(GTK_STOCK_ITALIC));
     rb_define_const(mGtkStock, "JUMP_TO", CSTR2SYM(GTK_STOCK_JUMP_TO));
@@ -148,6 +183,9 @@
     rb_define_const(mGtkStock, "JUSTIFY_FILL", CSTR2SYM(GTK_STOCK_JUSTIFY_FILL));
     rb_define_const(mGtkStock, "JUSTIFY_LEFT", CSTR2SYM(GTK_STOCK_JUSTIFY_LEFT));
     rb_define_const(mGtkStock, "JUSTIFY_RIGHT", CSTR2SYM(GTK_STOCK_JUSTIFY_RIGHT));
+#if GTK_CHECK_VERSION(2,8,0)
+    rb_define_const(mGtkStock, "LEAVE_FULLSCREEN", CSTR2SYM(GTK_STOCK_LEAVE_FULLSCREEN));
+#endif
 #if GTK_CHECK_VERSION(2,6,0)
     rb_define_const(mGtkStock, "MEDIA_FORWARD", CSTR2SYM(GTK_STOCK_MEDIA_FORWARD));
     rb_define_const(mGtkStock, "MEDIA_NEXT", CSTR2SYM(GTK_STOCK_MEDIA_NEXT));
Index: gtk/src/rbgtktextiter.c
===================================================================
RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtktextiter.c,v
retrieving revision 1.19
diff -u -r1.19 rbgtktextiter.c
--- gtk/src/rbgtktextiter.c	12 Feb 2005 16:03:46 -0000	1.19
+++ gtk/src/rbgtktextiter.c	19 Aug 2005 22:17:38 -0000
@@ -246,6 +246,12 @@
 def_move_gint(forward_visible_cursor_positions)
 def_move_gint(backward_visible_cursor_positions)
 #endif
+#if GTK_CHECK_VERSION(2,8,0)
+def_move(forward_visible_line)
+def_move(backward_visible_line)
+def_move_gint(forward_visible_lines)
+def_move_gint(backward_visible_lines)
+#endif
 def_move(forward_cursor_position)
 def_move(backward_cursor_position)
 def_move_gint(forward_cursor_positions)
@@ -504,6 +510,12 @@
     rb_define_method(cTextIter, "forward_visible_cursor_positions", forward_visible_cursor_positions, 1);
     rb_define_method(cTextIter, "backward_visible_cursor_positions", backward_visible_cursor_positions, 1); 
 #endif
+#if GTK_CHECK_VERSION(2,8,0)
+    rb_define_method(cTextIter, "forward_visible_line", forward_visible_line, 0); 
+    rb_define_method(cTextIter, "backward_visible_line", backward_visible_line, 0); 
+    rb_define_method(cTextIter, "forward_visible_lines", forward_visible_lines, 1); 
+    rb_define_method(cTextIter, "backward_visible_lines", backward_visible_lines, 1); 
+#endif
     rb_define_method(cTextIter, "forward_cursor_position", forward_cursor_position, 0);
     rb_define_method(cTextIter, "backward_cursor_position", backward_cursor_position, 0);
     rb_define_method(cTextIter, "forward_cursor_positions", forward_cursor_positions, 1);
Index: gtk/src/rbgtktoolbutton.c
===================================================================
RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtktoolbutton.c,v
retrieving revision 1.4
diff -u -r1.4 rbgtktoolbutton.c
--- gtk/src/rbgtktoolbutton.c	6 May 2005 20:17:11 -0000	1.4
+++ gtk/src/rbgtktoolbutton.c	19 Aug 2005 22:17:38 -0000
@@ -53,6 +53,9 @@
 void        gtk_tool_button_set_icon_widget (GtkToggletoolbutton *button,
                                              GtkWidget *icon_widget);
 GtkWidget*  gtk_tool_button_get_icon_widget (GtkToggletoolbutton *button);
+void        gtk_tool_button_set_icon_name   (GtkToolButton *button,
+                                             const gchar *icon_name);
+const gchar* gtk_tool_button_get_icon_name  (GtkToolButton *button);
 void        gtk_tool_button_set_label_widget
                                             (GtkToggletoolbutton *button,
                                              GtkWidget *label_widget);
Index: gtk/src/rbgtktreerowreference.c
===================================================================
RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtktreerowreference.c,v
retrieving revision 1.8
diff -u -r1.8 rbgtktreerowreference.c
--- gtk/src/rbgtktreerowreference.c	1 Nov 2003 09:37:25 -0000	1.8
+++ gtk/src/rbgtktreerowreference.c	19 Aug 2005 22:17:38 -0000
@@ -52,6 +52,15 @@
     return TREEPATH2RVAL(gtk_tree_row_reference_get_path(_SELF(self)));
 }
 
+#if GTK_CHECK_VERSION(2,8,0)
+static VALUE
+treerowref_get_model(self)
+    VALUE self;
+{
+    return GOBJ2RVAL(gtk_tree_row_reference_get_model(_SELF(self)));
+}
+#endif
+
 static VALUE
 treerowref_valid(self)
     VALUE self;
@@ -104,6 +113,9 @@
   
         rb_define_method(gTreeref, "initialize", treerowref_initialize, -1);
         rb_define_method(gTreeref, "path", treerowref_get_path, 0);
+#if GTK_CHECK_VERSION(2,8,0)
+        rb_define_method(gTreeref, "model", treerowref_get_model, 0);
+#endif
         rb_define_method(gTreeref, "valid?", treerowref_valid, 0);
 
         rb_define_singleton_method(gTreeref, "inserted", treerowref_s_inserted, 2);
Index: gtk/src/rbgtktreeview.c
===================================================================
RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtktreeview.c,v
retrieving revision 1.23
diff -u -r1.23 rbgtktreeview.c
--- gtk/src/rbgtktreeview.c	29 Jan 2005 11:44:15 -0000	1.23
+++ gtk/src/rbgtktreeview.c	19 Aug 2005 22:17:38 -0000
@@ -379,6 +379,23 @@
     return BOXED2RVAL(&rect, GDK_TYPE_RECTANGLE);
 }
 
+#if GTK_CHECK_VERSION(2,8,0)
+static VALUE
+treeview_get_visible_range(self)
+    VALUE self;
+{
+    GtkTreePath* start_path;
+    GtkTreePath* end_path;
+
+    gboolean valid_paths = gtk_tree_view_get_visible_range(_SELF(self), &start_path, &end_path);
+
+    return rb_ary_new3(3,
+                       RTEST(valid_paths),
+                       start_path ? TREEPATH2RVAL(start_path) : Qnil,
+                       end_path ? TREEPATH2RVAL(end_path) : Qnil);
+}
+#endif
+
 static VALUE
 treeview_get_bin_window(self)
     VALUE self;
@@ -635,15 +652,19 @@
     rb_define_method(gTv, "collapse_all", treeview_collapse_all, 0);
     rb_define_method(gTv, "expand_row", treeview_expand_row, 2);
     rb_define_method(gTv, "collapse_row", treeview_collapse_row, 1);
-   #if GTK_CHECK_VERSION(2,2,0)
+#if GTK_CHECK_VERSION(2,2,0)
     rb_define_method(gTv, "expand_to_path", treeview_expand_to_path, 1);
-   #endif
+#endif
     rb_define_method(gTv, "map_expanded_rows", treeview_map_expanded_rows, 0);
     rb_define_method(gTv, "row_expanded?", treeview_row_expanded, 1);
     rb_define_method(gTv, "get_path_at_pos", treeview_get_path_at_pos, 2);
     rb_define_method(gTv, "get_cell_area", treeview_get_cell_area, 2);
     rb_define_method(gTv, "get_background_area", treeview_get_background_area, 2);
     rb_define_method(gTv, "visible_rect", treeview_get_visible_rect, 0);
+#if GTK_CHECK_VERSION(2,8,0)
+    rb_define_method(gTv, "visible_range", treeview_get_visible_range, 0);
+#endif
+
     rb_define_method(gTv, "bin_window", treeview_get_bin_window, 0);
     rb_define_method(gTv, "widget_to_tree_coords", treeview_widget_to_tree_coords, 2);
     rb_define_method(gTv, "tree_to_widget_coords", treeview_tree_to_widget_coords, 2);
Index: gtk/src/rbgtktreeviewcolumn.c
===================================================================
RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtktreeviewcolumn.c,v
retrieving revision 1.22
diff -u -r1.22 rbgtktreeviewcolumn.c
--- gtk/src/rbgtktreeviewcolumn.c	29 Jan 2005 11:44:15 -0000	1.22
+++ gtk/src/rbgtktreeviewcolumn.c	19 Aug 2005 22:17:39 -0000
@@ -265,6 +265,17 @@
 
 #endif
 
+#if GTK_CHECK_VERSION(2,8,0)
+static VALUE
+tvc_queue_resize(self)
+    VALUE self;
+{
+    gtk_tree_view_column_queue_resize(_SELF(self));
+    return self;
+}
+#endif
+
+
 void
 Init_gtk_treeviewcolumn()
 {
@@ -290,6 +301,9 @@
 #if GTK_CHECK_VERSION(2,2,0)
     rb_define_method(tvc, "focus_cell", tvc_focus_cell, 1);
 #endif
+#if GTK_CHECK_VERSION(2,8,0)
+    rb_define_method(tvc, "queue_resize", tvc_queue_resize, 0);
+#endif
     /* GtkTreeViewColumnSizing */
     G_DEF_CLASS(GTK_TYPE_TREE_VIEW_COLUMN_SIZING, "Sizing", tvc);
     G_DEF_CONSTANTS(tvc, GTK_TYPE_TREE_VIEW_COLUMN_SIZING, "GTK_TREE_VIEW_COLUMN_");
Index: gtk/src/rbgtkwindow.c
===================================================================
RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtkwindow.c,v
retrieving revision 1.27
diff -u -r1.27 rbgtkwindow.c
--- gtk/src/rbgtkwindow.c	14 Jul 2005 17:01:50 -0000	1.27
+++ gtk/src/rbgtkwindow.c	19 Aug 2005 22:17:39 -0000
@@ -204,6 +204,22 @@
     return self;
 }
 
+#if GTK_CHECK_VERSION(2,8,0)
+static VALUE
+gwin_present(argc, argv, self)
+    int argc;
+    VALUE *argv;
+    VALUE self;
+{
+    VALUE timestamp;
+    if (rb_scan_args(argc, argv, "01", &timestamp) == 1) {
+        gtk_window_present_with_time(_SELF(self), NUM2UINT(timestamp));
+    } else {
+        gtk_window_present(_SELF(self));
+    }
+    return self;
+}
+#else
 static VALUE
 gwin_present(self)
     VALUE self;
@@ -211,6 +227,7 @@
     gtk_window_present(_SELF(self));
     return self;
 }
+#endif
 
 static VALUE
 gwin_iconify(self)
@@ -379,6 +396,9 @@
 void        gtk_window_set_focus_on_map     (GtkWindow *window,
                                              gboolean setting);
 gboolean    gtk_window_get_focus_on_map     (GtkWindow *window);
+
+void        gtk_window_set_urgency_hint     (GtkWindow *window,
+                                             gboolean setting);
 */
 
 
@@ -669,7 +689,11 @@
     rb_define_method(gWindow, "focus", gwin_get_focus, 0);
     rb_define_method(gWindow, "set_focus", gwin_set_focus, 1);
     rb_define_method(gWindow, "set_default", gwin_set_default, 1);
+#if GTK_CHECK_VERSION(2,8,0)
+    rb_define_method(gWindow, "present", gwin_present, -1);
+#else
     rb_define_method(gWindow, "present", gwin_present, 0);
+#endif
     rb_define_method(gWindow, "iconify", gwin_iconify, 0);
     rb_define_method(gWindow, "deiconify", gwin_deiconify, 0);
     rb_define_method(gWindow, "stick", gwin_stick, 0);

