1// -*- c++ -*-
2/* $Id: scrolledwindow.ccg,v 1.1 2003/01/21 13:40:36 murrayc Exp $ */
3
4/*
5 *
6 * Copyright 1998-2002 The gtkmm Development Team
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free
20 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */
22
23#include <gtkmm/scrollbar.h>
24#include <gtkmm/viewport.h>
25#include <gtkmm/adjustment.h>
26#include <gtk/gtk.h>
27
28
29namespace Gtk
30{
31
32void ScrolledWindow::add(Gtk::Widget& widget)
33{
34  GtkWidget* gwidget = widget.gobj();
35
36  //This check is courtesy of James Henstridge on gtk-devel-list@gnome.org.
37  if( GTK_WIDGET_GET_CLASS(gwidget)->set_scroll_adjustments_signal == 0)
38  {
39    //It doesn't have native scrolling capability, so it should be put inside a viewport first:
40    gtk_scrolled_window_add_with_viewport(gobj(), gwidget);
41  }
42  else
43  {
44    //It can work directly with a GtkScrolledWindow, so just use the Container::add():
45    Bin::add(widget);
46  }
47}
48
49} //namespace Gtk
50
51
52
53
54
55