removed vscrollbar, hscrollbar, vscrollbar_policy, hscrollbar_policy.

Thu Nov  5 16:00:32 1998  Lars Hamann  <lars@gtk.org>

	* gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
 	vscrollbar_policy, hscrollbar_policy. added h/vadjustment.

	* gtk/gtkclist.c (gtk_clist_class_init): added new args types
  	"hadjustment" & "vadjustment"
 	 (gtk_clist_set_arg) (gtk_clist_get_arg): new object class
  	set/get_arg functions
 	(gtk_clist_construct): don't create/adjust scrollbars.
 	(gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
 	to set h/vadjustments
  	(gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
 	to query h/vadjustments
 	(create_scrollbars): removed.
 	(create_adjustments): replacement for create_scrollbars
 	(gtk_clist_new): call gtk_clist_new_with_titles
 	(gtk_clist_new_with_titles): don't warn on titles == NULL
 	(move_horizontal): use CLAMP instead
 	(gtk_clist_set_policy): deprecated method.
  	use gtk_scrolled_window_set_policy instead.
 	(vadjustment_value_changed): use clist->vadj.
 	(adjust_scrollbars): renamed to adjust_adjustments
 	(adjust_adjustments): former adjust_scrollbars
 	(gtk_clist_destroy): unref adjustments
 	(gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
  	(gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
  	(gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
 	(gtk_clist_thaw) (real_insert_row) (real_remove_row)
 	(gtk_clist_set_row_height) (real_resize_column):
 	call adjust_adjustments
 	(gtk_clist_moveto): return if clist has no adjustments yet.
 	(gtk_clist_parent_set): new GtkWidget::parent_set function.
 	Autogenerate h/vadjustments if needed.
 	(move_horizontal) (move_vertical): some cleanups

	* gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
  	call only gtk_viewport_set_h/vadjustment and let these functions
  	do the work.
 	(gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
 	generate a new adjustment if needed

	* gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
  	use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible

	* gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
  	queue_resize if visibility of scrollbars changes
  	(gtk_scrolled_window_remove): only call container_remove with
  	scrolled_window->viewport automatically if viewport was autogenerated
 	(gtk_scrolled_window_add): add widget as scrolled_window->viewport.
 	auto create a viewport only if widget does not take h/vadjustments.
 	(gtk_scrolled_window_construct): don't generate a viewport
  	automatically.
 	(gtk_scrolled_window_forall): call callback with viewport in any case
 	(gtk_scrolled_window_set_arg): call gtk_container_add in case of
  	ARG_VIEWPORT
 	(gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
 	(gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
  	viewport != NULL

	* gtk/testgtk.c
 	(create_ctree) (export_ctree) (create_clist): use a scrolled_window
  	in conjunction with clists/ctrees

	* gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
 	in conjunction with clists

	* gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
 	in conjunction with clists
This commit is contained in:
Lars Hamann 1998-11-05 15:44:22 +00:00 committed by Lars Hamann
parent 6a227eec1c
commit 00fbbe68b0
16 changed files with 1057 additions and 580 deletions

View File

@ -1,3 +1,73 @@
Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
* gtk/gtkclist.c (gtk_clist_class_init): added new args types
"hadjustment" & "vadjustment"
(gtk_clist_set_arg) (gtk_clist_get_arg): new object class
set/get_arg functions
(gtk_clist_construct): don't create/adjust scrollbars.
(gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
to set h/vadjustments
(gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
to query h/vadjustments
(create_scrollbars): removed.
(create_adjustments): replacement for create_scrollbars
(gtk_clist_new): call gtk_clist_new_with_titles
(gtk_clist_new_with_titles): don't warn on titles == NULL
(move_horizontal): use CLAMP instead
(gtk_clist_set_policy): deprecated method.
use gtk_scrolled_window_set_policy instead.
(vadjustment_value_changed): use clist->vadj.
(adjust_scrollbars): renamed to adjust_adjustments
(adjust_adjustments): former adjust_scrollbars
(gtk_clist_destroy): unref adjustments
(gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
(gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
(gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
(gtk_clist_thaw) (real_insert_row) (real_remove_row)
(gtk_clist_set_row_height) (real_resize_column):
call adjust_adjustments
(gtk_clist_moveto): return if clist has no adjustments yet.
(gtk_clist_parent_set): new GtkWidget::parent_set function.
Autogenerate h/vadjustments if needed.
(move_horizontal) (move_vertical): some cleanups
* gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
call only gtk_viewport_set_h/vadjustment and let these functions
do the work.
(gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
generate a new adjustment if needed
* gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
queue_resize if visibility of scrollbars changes
(gtk_scrolled_window_remove): only call container_remove with
scrolled_window->viewport automatically if viewport was autogenerated
(gtk_scrolled_window_add): add widget as scrolled_window->viewport.
auto create a viewport only if widget does not take h/vadjustments.
(gtk_scrolled_window_construct): don't generate a viewport
automatically.
(gtk_scrolled_window_forall): call callback with viewport in any case
(gtk_scrolled_window_set_arg): call gtk_container_add in case of
ARG_VIEWPORT
(gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
(gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
viewport != NULL
* gtk/testgtk.c
(create_ctree) (export_ctree) (create_clist): use a scrolled_window
in conjunction with clists/ctrees
* gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
in conjunction with clists
* gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
in conjunction with clists
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment

View File

@ -1,3 +1,73 @@
Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
* gtk/gtkclist.c (gtk_clist_class_init): added new args types
"hadjustment" & "vadjustment"
(gtk_clist_set_arg) (gtk_clist_get_arg): new object class
set/get_arg functions
(gtk_clist_construct): don't create/adjust scrollbars.
(gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
to set h/vadjustments
(gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
to query h/vadjustments
(create_scrollbars): removed.
(create_adjustments): replacement for create_scrollbars
(gtk_clist_new): call gtk_clist_new_with_titles
(gtk_clist_new_with_titles): don't warn on titles == NULL
(move_horizontal): use CLAMP instead
(gtk_clist_set_policy): deprecated method.
use gtk_scrolled_window_set_policy instead.
(vadjustment_value_changed): use clist->vadj.
(adjust_scrollbars): renamed to adjust_adjustments
(adjust_adjustments): former adjust_scrollbars
(gtk_clist_destroy): unref adjustments
(gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
(gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
(gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
(gtk_clist_thaw) (real_insert_row) (real_remove_row)
(gtk_clist_set_row_height) (real_resize_column):
call adjust_adjustments
(gtk_clist_moveto): return if clist has no adjustments yet.
(gtk_clist_parent_set): new GtkWidget::parent_set function.
Autogenerate h/vadjustments if needed.
(move_horizontal) (move_vertical): some cleanups
* gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
call only gtk_viewport_set_h/vadjustment and let these functions
do the work.
(gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
generate a new adjustment if needed
* gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
queue_resize if visibility of scrollbars changes
(gtk_scrolled_window_remove): only call container_remove with
scrolled_window->viewport automatically if viewport was autogenerated
(gtk_scrolled_window_add): add widget as scrolled_window->viewport.
auto create a viewport only if widget does not take h/vadjustments.
(gtk_scrolled_window_construct): don't generate a viewport
automatically.
(gtk_scrolled_window_forall): call callback with viewport in any case
(gtk_scrolled_window_set_arg): call gtk_container_add in case of
ARG_VIEWPORT
(gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
(gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
viewport != NULL
* gtk/testgtk.c
(create_ctree) (export_ctree) (create_clist): use a scrolled_window
in conjunction with clists/ctrees
* gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
in conjunction with clists
* gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
in conjunction with clists
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment

View File

@ -1,3 +1,73 @@
Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
* gtk/gtkclist.c (gtk_clist_class_init): added new args types
"hadjustment" & "vadjustment"
(gtk_clist_set_arg) (gtk_clist_get_arg): new object class
set/get_arg functions
(gtk_clist_construct): don't create/adjust scrollbars.
(gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
to set h/vadjustments
(gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
to query h/vadjustments
(create_scrollbars): removed.
(create_adjustments): replacement for create_scrollbars
(gtk_clist_new): call gtk_clist_new_with_titles
(gtk_clist_new_with_titles): don't warn on titles == NULL
(move_horizontal): use CLAMP instead
(gtk_clist_set_policy): deprecated method.
use gtk_scrolled_window_set_policy instead.
(vadjustment_value_changed): use clist->vadj.
(adjust_scrollbars): renamed to adjust_adjustments
(adjust_adjustments): former adjust_scrollbars
(gtk_clist_destroy): unref adjustments
(gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
(gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
(gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
(gtk_clist_thaw) (real_insert_row) (real_remove_row)
(gtk_clist_set_row_height) (real_resize_column):
call adjust_adjustments
(gtk_clist_moveto): return if clist has no adjustments yet.
(gtk_clist_parent_set): new GtkWidget::parent_set function.
Autogenerate h/vadjustments if needed.
(move_horizontal) (move_vertical): some cleanups
* gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
call only gtk_viewport_set_h/vadjustment and let these functions
do the work.
(gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
generate a new adjustment if needed
* gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
queue_resize if visibility of scrollbars changes
(gtk_scrolled_window_remove): only call container_remove with
scrolled_window->viewport automatically if viewport was autogenerated
(gtk_scrolled_window_add): add widget as scrolled_window->viewport.
auto create a viewport only if widget does not take h/vadjustments.
(gtk_scrolled_window_construct): don't generate a viewport
automatically.
(gtk_scrolled_window_forall): call callback with viewport in any case
(gtk_scrolled_window_set_arg): call gtk_container_add in case of
ARG_VIEWPORT
(gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
(gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
viewport != NULL
* gtk/testgtk.c
(create_ctree) (export_ctree) (create_clist): use a scrolled_window
in conjunction with clists/ctrees
* gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
in conjunction with clists
* gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
in conjunction with clists
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment

View File

@ -1,3 +1,73 @@
Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
* gtk/gtkclist.c (gtk_clist_class_init): added new args types
"hadjustment" & "vadjustment"
(gtk_clist_set_arg) (gtk_clist_get_arg): new object class
set/get_arg functions
(gtk_clist_construct): don't create/adjust scrollbars.
(gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
to set h/vadjustments
(gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
to query h/vadjustments
(create_scrollbars): removed.
(create_adjustments): replacement for create_scrollbars
(gtk_clist_new): call gtk_clist_new_with_titles
(gtk_clist_new_with_titles): don't warn on titles == NULL
(move_horizontal): use CLAMP instead
(gtk_clist_set_policy): deprecated method.
use gtk_scrolled_window_set_policy instead.
(vadjustment_value_changed): use clist->vadj.
(adjust_scrollbars): renamed to adjust_adjustments
(adjust_adjustments): former adjust_scrollbars
(gtk_clist_destroy): unref adjustments
(gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
(gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
(gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
(gtk_clist_thaw) (real_insert_row) (real_remove_row)
(gtk_clist_set_row_height) (real_resize_column):
call adjust_adjustments
(gtk_clist_moveto): return if clist has no adjustments yet.
(gtk_clist_parent_set): new GtkWidget::parent_set function.
Autogenerate h/vadjustments if needed.
(move_horizontal) (move_vertical): some cleanups
* gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
call only gtk_viewport_set_h/vadjustment and let these functions
do the work.
(gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
generate a new adjustment if needed
* gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
queue_resize if visibility of scrollbars changes
(gtk_scrolled_window_remove): only call container_remove with
scrolled_window->viewport automatically if viewport was autogenerated
(gtk_scrolled_window_add): add widget as scrolled_window->viewport.
auto create a viewport only if widget does not take h/vadjustments.
(gtk_scrolled_window_construct): don't generate a viewport
automatically.
(gtk_scrolled_window_forall): call callback with viewport in any case
(gtk_scrolled_window_set_arg): call gtk_container_add in case of
ARG_VIEWPORT
(gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
(gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
viewport != NULL
* gtk/testgtk.c
(create_ctree) (export_ctree) (create_clist): use a scrolled_window
in conjunction with clists/ctrees
* gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
in conjunction with clists
* gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
in conjunction with clists
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment

View File

@ -1,3 +1,73 @@
Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
* gtk/gtkclist.c (gtk_clist_class_init): added new args types
"hadjustment" & "vadjustment"
(gtk_clist_set_arg) (gtk_clist_get_arg): new object class
set/get_arg functions
(gtk_clist_construct): don't create/adjust scrollbars.
(gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
to set h/vadjustments
(gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
to query h/vadjustments
(create_scrollbars): removed.
(create_adjustments): replacement for create_scrollbars
(gtk_clist_new): call gtk_clist_new_with_titles
(gtk_clist_new_with_titles): don't warn on titles == NULL
(move_horizontal): use CLAMP instead
(gtk_clist_set_policy): deprecated method.
use gtk_scrolled_window_set_policy instead.
(vadjustment_value_changed): use clist->vadj.
(adjust_scrollbars): renamed to adjust_adjustments
(adjust_adjustments): former adjust_scrollbars
(gtk_clist_destroy): unref adjustments
(gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
(gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
(gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
(gtk_clist_thaw) (real_insert_row) (real_remove_row)
(gtk_clist_set_row_height) (real_resize_column):
call adjust_adjustments
(gtk_clist_moveto): return if clist has no adjustments yet.
(gtk_clist_parent_set): new GtkWidget::parent_set function.
Autogenerate h/vadjustments if needed.
(move_horizontal) (move_vertical): some cleanups
* gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
call only gtk_viewport_set_h/vadjustment and let these functions
do the work.
(gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
generate a new adjustment if needed
* gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
queue_resize if visibility of scrollbars changes
(gtk_scrolled_window_remove): only call container_remove with
scrolled_window->viewport automatically if viewport was autogenerated
(gtk_scrolled_window_add): add widget as scrolled_window->viewport.
auto create a viewport only if widget does not take h/vadjustments.
(gtk_scrolled_window_construct): don't generate a viewport
automatically.
(gtk_scrolled_window_forall): call callback with viewport in any case
(gtk_scrolled_window_set_arg): call gtk_container_add in case of
ARG_VIEWPORT
(gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
(gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
viewport != NULL
* gtk/testgtk.c
(create_ctree) (export_ctree) (create_clist): use a scrolled_window
in conjunction with clists/ctrees
* gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
in conjunction with clists
* gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
in conjunction with clists
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment

View File

@ -1,3 +1,73 @@
Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
* gtk/gtkclist.c (gtk_clist_class_init): added new args types
"hadjustment" & "vadjustment"
(gtk_clist_set_arg) (gtk_clist_get_arg): new object class
set/get_arg functions
(gtk_clist_construct): don't create/adjust scrollbars.
(gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
to set h/vadjustments
(gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
to query h/vadjustments
(create_scrollbars): removed.
(create_adjustments): replacement for create_scrollbars
(gtk_clist_new): call gtk_clist_new_with_titles
(gtk_clist_new_with_titles): don't warn on titles == NULL
(move_horizontal): use CLAMP instead
(gtk_clist_set_policy): deprecated method.
use gtk_scrolled_window_set_policy instead.
(vadjustment_value_changed): use clist->vadj.
(adjust_scrollbars): renamed to adjust_adjustments
(adjust_adjustments): former adjust_scrollbars
(gtk_clist_destroy): unref adjustments
(gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
(gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
(gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
(gtk_clist_thaw) (real_insert_row) (real_remove_row)
(gtk_clist_set_row_height) (real_resize_column):
call adjust_adjustments
(gtk_clist_moveto): return if clist has no adjustments yet.
(gtk_clist_parent_set): new GtkWidget::parent_set function.
Autogenerate h/vadjustments if needed.
(move_horizontal) (move_vertical): some cleanups
* gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
call only gtk_viewport_set_h/vadjustment and let these functions
do the work.
(gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
generate a new adjustment if needed
* gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
queue_resize if visibility of scrollbars changes
(gtk_scrolled_window_remove): only call container_remove with
scrolled_window->viewport automatically if viewport was autogenerated
(gtk_scrolled_window_add): add widget as scrolled_window->viewport.
auto create a viewport only if widget does not take h/vadjustments.
(gtk_scrolled_window_construct): don't generate a viewport
automatically.
(gtk_scrolled_window_forall): call callback with viewport in any case
(gtk_scrolled_window_set_arg): call gtk_container_add in case of
ARG_VIEWPORT
(gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
(gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
viewport != NULL
* gtk/testgtk.c
(create_ctree) (export_ctree) (create_clist): use a scrolled_window
in conjunction with clists/ctrees
* gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
in conjunction with clists
* gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
in conjunction with clists
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment

View File

@ -1,3 +1,73 @@
Thu Nov 5 16:00:32 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkclist.h (struct _GtkCList): removed vscrollbar, hscrollbar,
vscrollbar_policy, hscrollbar_policy. added h/vadjustment.
* gtk/gtkclist.c (gtk_clist_class_init): added new args types
"hadjustment" & "vadjustment"
(gtk_clist_set_arg) (gtk_clist_get_arg): new object class
set/get_arg functions
(gtk_clist_construct): don't create/adjust scrollbars.
(gtk_clist_set_hadjustment) (gtk_clist_set_vadjustment): new functions
to set h/vadjustments
(gtk_clist_get_vadjustment) (gtk_clist_get_hadjustment): new functions
to query h/vadjustments
(create_scrollbars): removed.
(create_adjustments): replacement for create_scrollbars
(gtk_clist_new): call gtk_clist_new_with_titles
(gtk_clist_new_with_titles): don't warn on titles == NULL
(move_horizontal): use CLAMP instead
(gtk_clist_set_policy): deprecated method.
use gtk_scrolled_window_set_policy instead.
(vadjustment_value_changed): use clist->vadj.
(adjust_scrollbars): renamed to adjust_adjustments
(adjust_adjustments): former adjust_scrollbars
(gtk_clist_destroy): unref adjustments
(gtk_clist_size_allocate) (gtk_clist_map) (title_focus)
(gtk_clist_unmap) (gtk_clist_size_request) (gtk_clist_focus)
(gtk_clist_size_allocate) (gtk_clist_forall): don't use scrollbars
(gtk_clist_thaw) (real_insert_row) (real_remove_row)
(gtk_clist_set_row_height) (real_resize_column):
call adjust_adjustments
(gtk_clist_moveto): return if clist has no adjustments yet.
(gtk_clist_parent_set): new GtkWidget::parent_set function.
Autogenerate h/vadjustments if needed.
(move_horizontal) (move_vertical): some cleanups
* gtk/gtkviewport.c (gtk_viewport_set_arg) (gtk_viewport_new):
call only gtk_viewport_set_h/vadjustment and let these functions
do the work.
(gtk_viewport_set_hadjustment) (gtk_viewport_set_vadjustment):
generate a new adjustment if needed
* gtk/gtkscrolledwindow.h ((struct _GtkScrolledWindow):
use a guint bitfield for h/vscrollbar_policy and h/vscrollbar_visible
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
queue_resize if visibility of scrollbars changes
(gtk_scrolled_window_remove): only call container_remove with
scrolled_window->viewport automatically if viewport was autogenerated
(gtk_scrolled_window_add): add widget as scrolled_window->viewport.
auto create a viewport only if widget does not take h/vadjustments.
(gtk_scrolled_window_construct): don't generate a viewport
automatically.
(gtk_scrolled_window_forall): call callback with viewport in any case
(gtk_scrolled_window_set_arg): call gtk_container_add in case of
ARG_VIEWPORT
(gtk_scrolled_window_size_allocate) (gtk_scrolled_window_size_request)
(gtk_scrolled_window_map) (gtk_scrolled_window_unmap): check
viewport != NULL
* gtk/testgtk.c
(create_ctree) (export_ctree) (create_clist): use a scrolled_window
in conjunction with clists/ctrees
* gtk/gtkfilesel.c (gtk_file_selection_init): use a scrolled_window
in conjunction with clists
* gtk/gtkfontsel.c (gtk_font_selection_init): use a scrolled_window
in conjunction with clists
Wed Nov 4 21:52:57 1998 Lars Hamann <lars@gtk.org>
* gtk/gtkctree.c (gtk_ctree_unlink): fix focus_row adjustment

File diff suppressed because it is too large Load Diff

View File

@ -156,10 +156,8 @@ struct _GtkCList
gint undo_anchor;
/* scrollbars */
GtkWidget *vscrollbar;
GtkWidget *hscrollbar;
guint8 vscrollbar_policy;
guint8 hscrollbar_policy;
GtkAdjustment *hadjustment;
GtkAdjustment *vadjustment;
/* xor GC for the vertical drag line */
GdkGC *xor_gc;
@ -384,13 +382,19 @@ void gtk_clist_construct (GtkCList *clist,
gchar *titles[]);
/* create a new GtkCList */
GtkWidget *gtk_clist_new (gint columns);
GtkWidget *gtk_clist_new_with_titles (gint columns,
GtkWidget* gtk_clist_new (gint columns);
GtkWidget* gtk_clist_new_with_titles (gint columns,
gchar *titles[]);
/* deprecated function, use gtk_clist_set_shadow_type instead. */
void gtk_clist_set_border (GtkCList *clist,
GtkShadowType border);
/* set adjustments of clist */
void gtk_clist_set_hadjustment (GtkCList *clist,
GtkAdjustment *adjustment);
void gtk_clist_set_vadjustment (GtkCList *clist,
GtkAdjustment *adjustment);
/* get adjustments of clist */
GtkAdjustment* gtk_clist_get_hadjustment (GtkCList *clist);
GtkAdjustment* gtk_clist_get_vadjustment (GtkCList *clist);
/* set the border style of the clist */
void gtk_clist_set_shadow_type (GtkCList *clist,
@ -400,14 +404,6 @@ void gtk_clist_set_shadow_type (GtkCList *clist,
void gtk_clist_set_selection_mode (GtkCList *clist,
GtkSelectionMode mode);
/* set policy on the scrollbar, to either show them all the time
* or show them only when they are needed, ie., when there is more
* than one page of information
*/
void gtk_clist_set_policy (GtkCList *clist,
GtkPolicyType vscrollbar_policy,
GtkPolicyType hscrollbar_policy);
/* freeze all visual updates of the list, and then thaw the list after
* you have made a number of changes and the updates wil occure in a
* more efficent mannor than if you made them on a unfrozen list
@ -696,6 +692,17 @@ void gtk_clist_sort (GtkCList *clist);
void gtk_clist_set_auto_sort (GtkCList *clist,
gboolean auto_sort);
/* Deprecated methods */
/* Use gtk_clist_set_shadow_type instead. */
void gtk_clist_set_border (GtkCList *clist,
GtkShadowType border);
/* Completely non-functional */
void gtk_clist_set_policy (GtkCList *clist,
GtkPolicyType vscrollbar_policy,
GtkPolicyType hscrollbar_policy);
#ifdef __cplusplus
}
#endif /* __cplusplus */

View File

@ -367,6 +367,8 @@ gtk_file_selection_init (GtkFileSelection *filesel)
GtkWidget *list_hbox;
GtkWidget *confirm_area;
GtkWidget *pulldown_hbox;
GtkWidget *scrolled_win;
char *dir_title [] = { "Directories", };
char *file_title [] = { "Files", };
@ -410,11 +412,16 @@ gtk_file_selection_init (GtkFileSelection *filesel)
gtk_signal_connect (GTK_OBJECT (filesel->dir_list), "select_row",
(GtkSignalFunc) gtk_file_selection_dir_button,
(gpointer) filesel);
gtk_clist_set_policy (GTK_CLIST (filesel->dir_list), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
gtk_clist_column_titles_passive (GTK_CLIST (filesel->dir_list));
gtk_container_border_width (GTK_CONTAINER (filesel->dir_list), 5);
gtk_box_pack_start (GTK_BOX (list_hbox), filesel->dir_list, TRUE, TRUE, 0);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win), filesel->dir_list);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_container_border_width (GTK_CONTAINER (scrolled_win), 5);
gtk_box_pack_start (GTK_BOX (list_hbox), scrolled_win, TRUE, TRUE, 0);
gtk_widget_show (filesel->dir_list);
gtk_widget_show (scrolled_win);
/* The files clist */
filesel->file_list = gtk_clist_new_with_titles (1, file_title);
@ -422,11 +429,16 @@ gtk_file_selection_init (GtkFileSelection *filesel)
gtk_signal_connect (GTK_OBJECT (filesel->file_list), "select_row",
(GtkSignalFunc) gtk_file_selection_file_button,
(gpointer) filesel);
gtk_clist_set_policy (GTK_CLIST (filesel->file_list), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
gtk_clist_column_titles_passive (GTK_CLIST (filesel->file_list));
gtk_container_border_width (GTK_CONTAINER (filesel->file_list), 5);
gtk_box_pack_start (GTK_BOX (list_hbox), filesel->file_list, TRUE, TRUE, 0);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win), filesel->file_list);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_container_border_width (GTK_CONTAINER (scrolled_win), 5);
gtk_box_pack_start (GTK_BOX (list_hbox), scrolled_win, TRUE, TRUE, 0);
gtk_widget_show (filesel->file_list);
gtk_widget_show (scrolled_win);
/* action area for packing buttons into. */
filesel->action_area = gtk_hbox_new (TRUE, 0);

View File

@ -81,6 +81,7 @@
#include "gtksignal.h"
#include "gtktable.h"
#include "gtkvbox.h"
#include "gtkscrolledwindow.h"
/* The maximum number of fontnames requested with XListFonts(). */
#define MAX_FONTS 32767
@ -431,6 +432,7 @@ gtk_font_selection_class_init(GtkFontSelectionClass *klass)
static void
gtk_font_selection_init(GtkFontSelection *fontsel)
{
GtkWidget *scrolled_win;
GtkWidget *text_frame;
GtkWidget *text_box, *frame;
GtkWidget *table, *label, *hbox, *hbox2, *clist, *button, *vbox, *alignment;
@ -524,33 +526,43 @@ gtk_font_selection_init(GtkFontSelection *fontsel)
fontsel->font_clist = gtk_clist_new(1);
gtk_clist_column_titles_hide (GTK_CLIST(fontsel->font_clist));
gtk_clist_set_column_width (GTK_CLIST(fontsel->font_clist), 0, 300);
gtk_clist_set_policy(GTK_CLIST(fontsel->font_clist), GTK_POLICY_ALWAYS,
GTK_POLICY_AUTOMATIC);
gtk_widget_set_usize (fontsel->font_clist, FONT_LIST_WIDTH,
FONT_LIST_HEIGHT);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win), fontsel->font_clist);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_widget_show(fontsel->font_clist);
gtk_table_attach (GTK_TABLE (table), fontsel->font_clist, 0, 1, 2, 3,
gtk_widget_show(scrolled_win);
gtk_table_attach (GTK_TABLE (table), scrolled_win, 0, 1, 2, 3,
GTK_EXPAND | GTK_FILL,
GTK_EXPAND | GTK_FILL, 0, 0);
fontsel->font_style_clist = gtk_clist_new(1);
gtk_clist_column_titles_hide (GTK_CLIST(fontsel->font_style_clist));
gtk_clist_set_column_width (GTK_CLIST(fontsel->font_style_clist), 0, 300);
gtk_clist_set_policy(GTK_CLIST(fontsel->font_style_clist), GTK_POLICY_ALWAYS,
GTK_POLICY_AUTOMATIC);
gtk_widget_set_usize (fontsel->font_style_clist, FONT_STYLE_LIST_WIDTH, -1);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win), fontsel->font_style_clist);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_widget_show(fontsel->font_style_clist);
gtk_table_attach (GTK_TABLE (table), fontsel->font_style_clist, 1, 2, 2, 3,
gtk_widget_show(scrolled_win);
gtk_table_attach (GTK_TABLE (table), scrolled_win, 1, 2, 2, 3,
GTK_EXPAND | GTK_FILL,
GTK_EXPAND | GTK_FILL, 0, 0);
fontsel->size_clist = gtk_clist_new(1);
gtk_clist_column_titles_hide (GTK_CLIST(fontsel->size_clist));
gtk_clist_set_policy(GTK_CLIST(fontsel->size_clist), GTK_POLICY_ALWAYS,
GTK_POLICY_AUTOMATIC);
gtk_widget_set_usize (fontsel->size_clist, FONT_SIZE_LIST_WIDTH, -1);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win), fontsel->size_clist);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_widget_show(fontsel->size_clist);
gtk_table_attach (GTK_TABLE (table), fontsel->size_clist, 2, 3, 2, 3,
gtk_widget_show(scrolled_win);
gtk_table_attach (GTK_TABLE (table), scrolled_win, 2, 3, 2, 3,
GTK_FILL, GTK_FILL, 0, 0);
@ -683,16 +695,19 @@ gtk_font_selection_init(GtkFontSelection *fontsel)
gtk_notebook_append_page (GTK_NOTEBOOK (fontsel),
fontsel->info_vbox, label);
fontsel->info_clist = gtk_clist_new_with_titles(3, titles);
fontsel->info_clist = gtk_clist_new_with_titles (3, titles);
gtk_widget_set_usize (fontsel->info_clist, 390, 150);
gtk_clist_set_column_width(GTK_CLIST(fontsel->info_clist), 0, 130);
gtk_clist_set_column_width(GTK_CLIST(fontsel->info_clist), 1, 130);
gtk_clist_set_column_width(GTK_CLIST(fontsel->info_clist), 2, 130);
gtk_clist_column_titles_passive(GTK_CLIST(fontsel->info_clist));
gtk_clist_set_policy(GTK_CLIST(fontsel->info_clist), GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win), fontsel->info_clist);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_widget_show(fontsel->info_clist);
gtk_box_pack_start (GTK_BOX (fontsel->info_vbox), fontsel->info_clist,
gtk_widget_show(scrolled_win);
gtk_box_pack_start (GTK_BOX (fontsel->info_vbox), scrolled_win,
TRUE, TRUE, 0);
/* Insert the property names */
@ -806,9 +821,13 @@ gtk_font_selection_init(GtkFontSelection *fontsel)
gtk_widget_set_usize (clist, 100, filter_heights[prop]);
gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_MULTIPLE);
gtk_clist_column_titles_hide(GTK_CLIST(clist));
gtk_clist_set_policy(GTK_CLIST(clist), GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win), clist);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_widget_show(clist);
gtk_widget_show(scrolled_win);
/* For the bottom-right cell we add the 'Reset Filter' button. */
if (top == 2 && left == 2)
@ -818,7 +837,7 @@ gtk_font_selection_init(GtkFontSelection *fontsel)
gtk_table_attach (GTK_TABLE (table), vbox, left, left + 1,
top + 1, top + 2, GTK_FILL, GTK_FILL, 0, 0);
gtk_box_pack_start (GTK_BOX (vbox), clist, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0);
alignment = gtk_alignment_new(0.5, 0.0, 0.8, 0.0);
gtk_widget_show(alignment);
@ -832,7 +851,7 @@ gtk_font_selection_init(GtkFontSelection *fontsel)
fontsel);
}
else
gtk_table_attach (GTK_TABLE (table), clist,
gtk_table_attach (GTK_TABLE (table), scrolled_win,
left, left + 1, top + 1, top + 2,
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);

View File

@ -147,12 +147,8 @@ gtk_scrolled_window_set_arg (GtkObject *object,
GtkWidget *viewport;
case ARG_VIEWPORT:
g_return_if_fail (scrolled_window->viewport == NULL);
viewport = GTK_VALUE_POINTER (*arg);
if (!viewport)
viewport = gtk_viewport_new (NULL, NULL);
scrolled_window->viewport = viewport;
gtk_scrolled_window_construct (scrolled_window, NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_window), viewport);
case ARG_HSCROLLBAR_POLICY:
gtk_scrolled_window_set_policy (scrolled_window,
GTK_VALUE_ENUM (*arg),
@ -205,6 +201,7 @@ gtk_scrolled_window_init (GtkScrolledWindow *scrolled_window)
scrolled_window->vscrollbar = NULL;
scrolled_window->hscrollbar_policy = GTK_POLICY_ALWAYS;
scrolled_window->vscrollbar_policy = GTK_POLICY_ALWAYS;
scrolled_window->autogenerated_viewport = FALSE;
}
GtkWidget*
@ -216,7 +213,7 @@ gtk_scrolled_window_new (GtkAdjustment *hadjustment,
scrolled_window = gtk_type_new (GTK_TYPE_SCROLLED_WINDOW);
gtk_scrolled_window_construct (GTK_SCROLLED_WINDOW (scrolled_window), hadjustment, vadjustment);
return scrolled_window;
}
@ -230,14 +227,13 @@ gtk_scrolled_window_construct (GtkScrolledWindow *scrolled_window,
g_return_if_fail (scrolled_window->hscrollbar == NULL);
g_return_if_fail (scrolled_window->vscrollbar == NULL);
if (scrolled_window->viewport)
g_return_if_fail (hadjustment == NULL && vadjustment == NULL);
else
scrolled_window->viewport = gtk_viewport_new (hadjustment, vadjustment);
scrolled_window->hscrollbar = gtk_hscrollbar_new (hadjustment);
scrolled_window->vscrollbar = gtk_vscrollbar_new (vadjustment);
hadjustment = gtk_viewport_get_hadjustment (GTK_VIEWPORT (scrolled_window->viewport));
vadjustment = gtk_viewport_get_vadjustment (GTK_VIEWPORT (scrolled_window->viewport));
gtk_container_set_resize_mode (GTK_CONTAINER (scrolled_window->viewport), GTK_RESIZE_PARENT);
hadjustment =
gtk_range_get_adjustment (GTK_RANGE (scrolled_window->hscrollbar));
vadjustment =
gtk_range_get_adjustment (GTK_RANGE (scrolled_window->vscrollbar));
gtk_signal_connect (GTK_OBJECT (hadjustment), "changed",
(GtkSignalFunc) gtk_scrolled_window_adjustment_changed,
@ -246,18 +242,12 @@ gtk_scrolled_window_construct (GtkScrolledWindow *scrolled_window,
(GtkSignalFunc) gtk_scrolled_window_adjustment_changed,
(gpointer) scrolled_window);
scrolled_window->hscrollbar = gtk_hscrollbar_new (hadjustment);
scrolled_window->vscrollbar = gtk_vscrollbar_new (vadjustment);
gtk_widget_set_parent (scrolled_window->viewport, GTK_WIDGET (scrolled_window));
gtk_widget_set_parent (scrolled_window->hscrollbar, GTK_WIDGET (scrolled_window));
gtk_widget_set_parent (scrolled_window->vscrollbar, GTK_WIDGET (scrolled_window));
gtk_widget_show (scrolled_window->viewport);
gtk_widget_show (scrolled_window->hscrollbar);
gtk_widget_show (scrolled_window->vscrollbar);
gtk_widget_ref (scrolled_window->viewport);
gtk_widget_ref (scrolled_window->hscrollbar);
gtk_widget_ref (scrolled_window->vscrollbar);
}
@ -344,7 +334,8 @@ gtk_scrolled_window_map (GtkWidget *widget)
GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED);
scrolled_window = GTK_SCROLLED_WINDOW (widget);
if (GTK_WIDGET_VISIBLE (scrolled_window->viewport) &&
if (scrolled_window->viewport &&
GTK_WIDGET_VISIBLE (scrolled_window->viewport) &&
!GTK_WIDGET_MAPPED (scrolled_window->viewport))
gtk_widget_map (scrolled_window->viewport);
@ -371,7 +362,8 @@ gtk_scrolled_window_unmap (GtkWidget *widget)
GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
scrolled_window = GTK_SCROLLED_WINDOW (widget);
if (GTK_WIDGET_MAPPED (scrolled_window->viewport))
if (scrolled_window->viewport &&
GTK_WIDGET_MAPPED (scrolled_window->viewport))
gtk_widget_unmap (scrolled_window->viewport);
if (GTK_WIDGET_MAPPED (scrolled_window->hscrollbar))
@ -397,7 +389,8 @@ gtk_scrolled_window_draw (GtkWidget *widget,
{
scrolled_window = GTK_SCROLLED_WINDOW (widget);
if (gtk_widget_intersect (scrolled_window->viewport, area, &child_area))
if (scrolled_window->viewport &&
gtk_widget_intersect (scrolled_window->viewport, area, &child_area))
gtk_widget_draw (scrolled_window->viewport, &child_area);
if (gtk_widget_intersect (scrolled_window->hscrollbar, area, &child_area))
@ -425,7 +418,8 @@ gtk_scrolled_window_size_request (GtkWidget *widget,
requisition->width = 0;
requisition->height = 0;
if (GTK_WIDGET_VISIBLE (scrolled_window->viewport))
if (scrolled_window->viewport &&
GTK_WIDGET_VISIBLE (scrolled_window->viewport))
{
gtk_widget_size_request (scrolled_window->viewport, &scrolled_window->viewport->requisition);
@ -483,7 +477,8 @@ gtk_scrolled_window_size_allocate (GtkWidget *widget,
if (scrolled_window->vscrollbar_policy == GTK_POLICY_ALWAYS)
scrolled_window->vscrollbar_visible = TRUE;
if (GTK_WIDGET_VISIBLE (scrolled_window->viewport))
if (scrolled_window->viewport &&
GTK_WIDGET_VISIBLE (scrolled_window->viewport))
{
count = 0;
@ -562,13 +557,75 @@ gtk_scrolled_window_add (GtkContainer *container,
GtkWidget *widget)
{
GtkScrolledWindow *scrolled_window;
GtkArgInfo *info_hadj;
GtkArgInfo *info_vadj;
GtkArg arg;
gchar *error;
g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_SCROLLED_WINDOW (container));
g_return_if_fail (widget != NULL);
scrolled_window = GTK_SCROLLED_WINDOW (container);
gtk_container_add (GTK_CONTAINER (scrolled_window->viewport), widget);
if (scrolled_window->viewport)
gtk_container_remove (container, scrolled_window->viewport);
error = gtk_object_arg_get_info (GTK_OBJECT_TYPE (widget),
"hadjustment", &info_hadj);
if (!error)
{
error = gtk_object_arg_get_info (GTK_OBJECT_TYPE (widget),
"vadjustment", &info_vadj);
if (!error)
{
gtk_object_set (GTK_OBJECT (widget),
"hadjustment",
gtk_scrolled_window_get_hadjustment
(scrolled_window),
"vadjustment",
gtk_scrolled_window_get_vadjustment
(scrolled_window),
NULL);
scrolled_window->viewport = widget;
gtk_widget_set_parent (widget, GTK_WIDGET (scrolled_window));
gtk_widget_ref (widget);
scrolled_window->autogenerated_viewport = FALSE;
}
}
if (error)
{
g_free (error);
scrolled_window->viewport = gtk_viewport_new
(gtk_scrolled_window_get_hadjustment (scrolled_window),
gtk_scrolled_window_get_vadjustment (scrolled_window));
gtk_widget_set_parent (scrolled_window->viewport,
GTK_WIDGET (scrolled_window));
gtk_widget_ref (scrolled_window->viewport);
gtk_widget_show (scrolled_window->viewport);
scrolled_window->autogenerated_viewport = FALSE;
gtk_container_add (GTK_CONTAINER (scrolled_window->viewport), widget);
widget = scrolled_window->viewport;
}
if (GTK_WIDGET_VISIBLE (scrolled_window))
{
if (GTK_WIDGET_REALIZED (scrolled_window) &&
!GTK_WIDGET_REALIZED (widget))
gtk_widget_realize (widget);
if (GTK_WIDGET_MAPPED (scrolled_window) &&
!GTK_WIDGET_MAPPED (widget))
gtk_widget_map (widget);
}
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (scrolled_window))
gtk_widget_queue_resize (widget);
}
static void
@ -582,15 +639,18 @@ gtk_scrolled_window_remove (GtkContainer *container,
g_return_if_fail (widget != NULL);
scrolled_window = GTK_SCROLLED_WINDOW (container);
if (scrolled_window->viewport == widget ||
scrolled_window->hscrollbar == widget ||
scrolled_window->vscrollbar == widget)
{
/* this happens during destroy */
if (scrolled_window->viewport == widget)
scrolled_window->autogenerated_viewport = FALSE;
gtk_widget_unparent (widget);
}
else
else if (scrolled_window->autogenerated_viewport)
gtk_container_remove (GTK_CONTAINER (scrolled_window->viewport), widget);
}
@ -608,16 +668,13 @@ gtk_scrolled_window_forall (GtkContainer *container,
scrolled_window = GTK_SCROLLED_WINDOW (container);
if (scrolled_window->viewport)
(* callback) (scrolled_window->viewport, callback_data);
if (include_internals)
{
if (scrolled_window->viewport)
(* callback) (scrolled_window->viewport, callback_data);
(* callback) (scrolled_window->vscrollbar, callback_data);
(* callback) (scrolled_window->hscrollbar, callback_data);
}
else if (scrolled_window->viewport)
gtk_container_foreach (GTK_CONTAINER (scrolled_window->viewport), callback, callback_data);
}
static void
@ -649,6 +706,7 @@ gtk_scrolled_window_adjustment_changed (GtkAdjustment *adjustment,
gpointer data)
{
GtkScrolledWindow *scrolled_win;
gboolean visible;
g_return_if_fail (adjustment != NULL);
g_return_if_fail (data != NULL);
@ -659,16 +717,22 @@ gtk_scrolled_window_adjustment_changed (GtkAdjustment *adjustment,
{
if (scrolled_win->hscrollbar_policy == GTK_POLICY_AUTOMATIC)
{
visible = scrolled_win->hscrollbar_visible;
scrolled_win->hscrollbar_visible =
((adjustment->upper - adjustment->lower) > adjustment->page_size);
if (scrolled_win->hscrollbar_visible != visible)
gtk_widget_queue_resize (GTK_WIDGET (scrolled_win));
}
}
else if (adjustment == gtk_range_get_adjustment (GTK_RANGE (scrolled_win->vscrollbar)))
{
if (scrolled_win->vscrollbar_policy == GTK_POLICY_AUTOMATIC)
{
visible = scrolled_win->vscrollbar_visible;
scrolled_win->vscrollbar_visible =
((adjustment->upper - adjustment->lower) > adjustment->page_size);
if (scrolled_win->vscrollbar_visible != visible)
gtk_widget_queue_resize (GTK_WIDGET (scrolled_win));
}
}
else

View File

@ -49,10 +49,11 @@ struct _GtkScrolledWindow
GtkWidget *hscrollbar;
GtkWidget *vscrollbar;
guint8 hscrollbar_policy;
guint8 vscrollbar_policy;
gint hscrollbar_visible : 1;
gint vscrollbar_visible : 1;
guint hscrollbar_policy : 2;
guint vscrollbar_policy : 2;
guint hscrollbar_visible : 1;
guint vscrollbar_visible : 1;
guint autogenerated_viewport : 1;
};
struct _GtkScrolledWindowClass

View File

@ -140,17 +140,11 @@ gtk_viewport_set_arg (GtkObject *object,
GtkAdjustment *adjustment;
case ARG_HADJUSTMENT:
g_return_if_fail (viewport->hadjustment == NULL);
adjustment = GTK_VALUE_POINTER (*arg);
if (!adjustment)
adjustment = (GtkAdjustment*) gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
gtk_viewport_set_hadjustment (viewport, adjustment);
break;
case ARG_VADJUSTMENT:
g_return_if_fail (viewport->vadjustment == NULL);
adjustment = GTK_VALUE_POINTER (*arg);
if (!adjustment)
adjustment = (GtkAdjustment*) gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
gtk_viewport_set_vadjustment (viewport, adjustment);
break;
case ARG_SHADOW_TYPE:
@ -210,12 +204,6 @@ gtk_viewport_new (GtkAdjustment *hadjustment,
viewport = gtk_type_new (gtk_viewport_get_type ());
if (!hadjustment)
hadjustment = (GtkAdjustment*) gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
if (!vadjustment)
vadjustment = (GtkAdjustment*) gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
gtk_viewport_set_hadjustment (viewport, hadjustment);
gtk_viewport_set_vadjustment (viewport, vadjustment);
@ -257,17 +245,22 @@ gtk_viewport_set_hadjustment (GtkViewport *viewport,
{
g_return_if_fail (viewport != NULL);
g_return_if_fail (GTK_IS_VIEWPORT (viewport));
g_return_if_fail (adjustment != NULL);
if (adjustment)
g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
if (viewport->hadjustment && viewport->hadjustment != adjustment)
{
gtk_signal_disconnect_by_data (GTK_OBJECT (viewport->hadjustment),
(gpointer) viewport);
gtk_object_unref (GTK_OBJECT (viewport->hadjustment));
}
if (!adjustment)
adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0,
0.0, 0.0, 0.0));
if (viewport->hadjustment != adjustment)
{
if (viewport->hadjustment)
{
gtk_signal_disconnect_by_data (GTK_OBJECT (viewport->hadjustment),
(gpointer) viewport);
gtk_object_unref (GTK_OBJECT (viewport->hadjustment));
}
viewport->hadjustment = adjustment;
gtk_object_ref (GTK_OBJECT (viewport->hadjustment));
gtk_object_sink (GTK_OBJECT (viewport->hadjustment));
@ -289,17 +282,22 @@ gtk_viewport_set_vadjustment (GtkViewport *viewport,
{
g_return_if_fail (viewport != NULL);
g_return_if_fail (GTK_IS_VIEWPORT (viewport));
g_return_if_fail (adjustment != NULL);
if (adjustment)
g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
if (viewport->vadjustment && viewport->vadjustment != adjustment)
{
gtk_signal_disconnect_by_data (GTK_OBJECT (viewport->vadjustment),
(gpointer) viewport);
gtk_object_unref (GTK_OBJECT (viewport->vadjustment));
}
if (!adjustment)
adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0,
0.0, 0.0, 0.0));
if (viewport->vadjustment != adjustment)
{
if (viewport->vadjustment)
{
gtk_signal_disconnect_by_data (GTK_OBJECT (viewport->vadjustment),
(gpointer) viewport);
gtk_object_unref (GTK_OBJECT (viewport->vadjustment));
}
viewport->vadjustment = adjustment;
gtk_object_ref (GTK_OBJECT (viewport->vadjustment));
gtk_object_sink (GTK_OBJECT (viewport->vadjustment));

View File

@ -3261,7 +3261,7 @@ create_list (void)
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_box_pack_start (GTK_BOX (box2), scrolled_win, TRUE, TRUE, 0);
gtk_widget_set_usize (scrolled_win, -1, 300);
@ -3876,6 +3876,7 @@ create_clist (void)
GtkWidget *clist;
GtkWidget *button;
GtkWidget *separator;
GtkWidget *scrolled_win;
GtkWidget *undo_button;
GtkWidget *label;
@ -3905,6 +3906,12 @@ create_clist (void)
/* create GtkCList here so we have a pointer to throw at the
* button callbacks -- more is done with it later */
clist = gtk_clist_new_with_titles (TESTGTK_CLIST_COLUMNS, titles);
gtk_widget_show (clist);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_container_add (GTK_CONTAINER (scrolled_win), clist);
/*clist = gtk_clist_new (TESTGTK_CLIST_COLUMNS);*/
gtk_signal_connect (GTK_OBJECT (clist), "click_column",
@ -4014,8 +4021,6 @@ create_clist (void)
gtk_clist_set_column_min_width (GTK_CLIST (clist), 3, 50);
gtk_clist_set_selection_mode (GTK_CLIST (clist), GTK_SELECTION_EXTENDED);
gtk_clist_set_policy (GTK_CLIST (clist), GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_clist_set_column_justification (GTK_CLIST (clist), 1,
GTK_JUSTIFY_RIGHT);
@ -4062,8 +4067,8 @@ create_clist (void)
}
}
gtk_container_border_width (GTK_CONTAINER (clist), 5);
gtk_box_pack_start (GTK_BOX (box2), clist, TRUE, TRUE, 0);
gtk_container_border_width (GTK_CONTAINER (scrolled_win), 5);
gtk_box_pack_start (GTK_BOX (box2), scrolled_win, TRUE, TRUE, 0);
separator = gtk_hseparator_new ();
gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
@ -4427,6 +4432,7 @@ void export_ctree (GtkWidget *widget, GtkCTree *ctree)
static GtkWidget *export_window = NULL;
static GtkCTree *export_ctree;
GtkWidget *vbox;
GtkWidget *scrolled_win;
GtkWidget *button;
GtkWidget *sep;
GNode *gnode;
@ -4459,12 +4465,15 @@ void export_ctree (GtkWidget *widget, GtkCTree *ctree)
export_ctree = GTK_CTREE (gtk_ctree_new_with_titles (2, 0, title));
gtk_ctree_set_line_style (export_ctree, GTK_CTREE_LINES_DOTTED);
gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (export_ctree),
TRUE, TRUE, 0);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win),
GTK_WIDGET (export_ctree));
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0);
gtk_clist_set_selection_mode (GTK_CLIST (export_ctree),
GTK_SELECTION_EXTENDED);
gtk_clist_set_policy (GTK_CLIST (export_ctree), GTK_POLICY_ALWAYS,
GTK_POLICY_AUTOMATIC);
gtk_clist_set_column_width (GTK_CLIST (export_ctree), 0, 200);
gtk_clist_set_column_width (GTK_CLIST (export_ctree), 1, 200);
gtk_widget_set_usize (GTK_WIDGET (export_ctree), 300, 200);
@ -4732,6 +4741,7 @@ void create_ctree (void)
static GtkWidget *window = NULL;
GtkTooltips *tooltips;
GtkCTree *ctree;
GtkWidget *scrolled_win;
GtkWidget *vbox;
GtkWidget *bbox;
GtkWidget *mbox;
@ -4866,10 +4876,13 @@ void create_ctree (void)
gtk_signal_connect_after (GTK_OBJECT (ctree), "scroll_vertical",
GTK_SIGNAL_FUNC (after_press), NULL);
gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (ctree), TRUE, TRUE, 0);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win), GTK_WIDGET (ctree));
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_container_border_width (GTK_CONTAINER (scrolled_win), 5);
gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0);
gtk_clist_set_selection_mode (GTK_CLIST (ctree), GTK_SELECTION_EXTENDED);
gtk_clist_set_policy (GTK_CLIST (ctree), GTK_POLICY_ALWAYS,
GTK_POLICY_AUTOMATIC);
gtk_clist_set_column_min_width (GTK_CLIST (ctree), 0, 50);
gtk_clist_set_column_auto_resize (GTK_CLIST (ctree), 0, TRUE);
gtk_clist_set_column_width (GTK_CLIST (ctree), 1, 200);
@ -7997,7 +8010,6 @@ create_main_window (void)
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
GTK_WIDGET_UNSET_FLAGS (GTK_SCROLLED_WINDOW (scrolled_window)->vscrollbar, GTK_CAN_FOCUS);
gtk_box_pack_start (GTK_BOX (box1), scrolled_window, TRUE, TRUE, 0);
box2 = gtk_vbox_new (FALSE, 0);

View File

@ -3261,7 +3261,7 @@ create_list (void)
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_box_pack_start (GTK_BOX (box2), scrolled_win, TRUE, TRUE, 0);
gtk_widget_set_usize (scrolled_win, -1, 300);
@ -3876,6 +3876,7 @@ create_clist (void)
GtkWidget *clist;
GtkWidget *button;
GtkWidget *separator;
GtkWidget *scrolled_win;
GtkWidget *undo_button;
GtkWidget *label;
@ -3905,6 +3906,12 @@ create_clist (void)
/* create GtkCList here so we have a pointer to throw at the
* button callbacks -- more is done with it later */
clist = gtk_clist_new_with_titles (TESTGTK_CLIST_COLUMNS, titles);
gtk_widget_show (clist);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_container_add (GTK_CONTAINER (scrolled_win), clist);
/*clist = gtk_clist_new (TESTGTK_CLIST_COLUMNS);*/
gtk_signal_connect (GTK_OBJECT (clist), "click_column",
@ -4014,8 +4021,6 @@ create_clist (void)
gtk_clist_set_column_min_width (GTK_CLIST (clist), 3, 50);
gtk_clist_set_selection_mode (GTK_CLIST (clist), GTK_SELECTION_EXTENDED);
gtk_clist_set_policy (GTK_CLIST (clist), GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_clist_set_column_justification (GTK_CLIST (clist), 1,
GTK_JUSTIFY_RIGHT);
@ -4062,8 +4067,8 @@ create_clist (void)
}
}
gtk_container_border_width (GTK_CONTAINER (clist), 5);
gtk_box_pack_start (GTK_BOX (box2), clist, TRUE, TRUE, 0);
gtk_container_border_width (GTK_CONTAINER (scrolled_win), 5);
gtk_box_pack_start (GTK_BOX (box2), scrolled_win, TRUE, TRUE, 0);
separator = gtk_hseparator_new ();
gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
@ -4427,6 +4432,7 @@ void export_ctree (GtkWidget *widget, GtkCTree *ctree)
static GtkWidget *export_window = NULL;
static GtkCTree *export_ctree;
GtkWidget *vbox;
GtkWidget *scrolled_win;
GtkWidget *button;
GtkWidget *sep;
GNode *gnode;
@ -4459,12 +4465,15 @@ void export_ctree (GtkWidget *widget, GtkCTree *ctree)
export_ctree = GTK_CTREE (gtk_ctree_new_with_titles (2, 0, title));
gtk_ctree_set_line_style (export_ctree, GTK_CTREE_LINES_DOTTED);
gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (export_ctree),
TRUE, TRUE, 0);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win),
GTK_WIDGET (export_ctree));
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0);
gtk_clist_set_selection_mode (GTK_CLIST (export_ctree),
GTK_SELECTION_EXTENDED);
gtk_clist_set_policy (GTK_CLIST (export_ctree), GTK_POLICY_ALWAYS,
GTK_POLICY_AUTOMATIC);
gtk_clist_set_column_width (GTK_CLIST (export_ctree), 0, 200);
gtk_clist_set_column_width (GTK_CLIST (export_ctree), 1, 200);
gtk_widget_set_usize (GTK_WIDGET (export_ctree), 300, 200);
@ -4732,6 +4741,7 @@ void create_ctree (void)
static GtkWidget *window = NULL;
GtkTooltips *tooltips;
GtkCTree *ctree;
GtkWidget *scrolled_win;
GtkWidget *vbox;
GtkWidget *bbox;
GtkWidget *mbox;
@ -4866,10 +4876,13 @@ void create_ctree (void)
gtk_signal_connect_after (GTK_OBJECT (ctree), "scroll_vertical",
GTK_SIGNAL_FUNC (after_press), NULL);
gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (ctree), TRUE, TRUE, 0);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win), GTK_WIDGET (ctree));
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_container_border_width (GTK_CONTAINER (scrolled_win), 5);
gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0);
gtk_clist_set_selection_mode (GTK_CLIST (ctree), GTK_SELECTION_EXTENDED);
gtk_clist_set_policy (GTK_CLIST (ctree), GTK_POLICY_ALWAYS,
GTK_POLICY_AUTOMATIC);
gtk_clist_set_column_min_width (GTK_CLIST (ctree), 0, 50);
gtk_clist_set_column_auto_resize (GTK_CLIST (ctree), 0, TRUE);
gtk_clist_set_column_width (GTK_CLIST (ctree), 1, 200);
@ -7997,7 +8010,6 @@ create_main_window (void)
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
GTK_WIDGET_UNSET_FLAGS (GTK_SCROLLED_WINDOW (scrolled_window)->vscrollbar, GTK_CAN_FOCUS);
gtk_box_pack_start (GTK_BOX (box1), scrolled_window, TRUE, TRUE, 0);
box2 = gtk_vbox_new (FALSE, 0);