Commit Graph

72 Commits

Author SHA1 Message Date
Jonathan Blandford
2970a2feee You can now set all sorts of properties in any order you wan, whether or
Tue May 15 20:13:24 2001  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtktreeviewcolumn.c: You can now set all sorts of properties
	in any order you wan, whether or not the column is added to the
	tree, or the tree is realized.  Yay!

	* gtk/gtktreeviewcolumn.c
	(gtk_tree_view_column_setup_sort_column_id_callback): handle
	sorting columns a lot saner

	* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_reorderable):
	new function to actually set wether or not a column is
	reorderable.

	* gtk/gtktreeview.c (gtk_tree_view_unrealize): Only destroy things
	if we have 'em.

	* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_set_tree_view):
	Fix nasty bug where we were showing the button just before
	realizing it.  As a result, the parent window was
	tree_view->window instead of tree_view->priv->header_window.

	* gtk/gtktreeview.c (gtk_tree_view_set_reorderable): new property
	to let you easily reorder a list or tree.
2001-05-16 00:23:30 +00:00
Jonathan Blandford
6e70564088 New function to let user control where columns are dragged.
Wed May  9 15:27:22 2001  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_set_column_drag_function): New
	function to let user control where columns are dragged.

	* gtk/gtktreeview.c (gtk_tree_view_key_press): Cancel drags if
	Escape is pressed.
2001-05-09 22:23:12 +00:00
Jonathan Blandford
3340826a50 New "columns_changed" signal.
Wed May  9 09:08:44 2001  Jonathan Blandford  <jrb@webwynk.net>

	* gtk/gtktreeview.c (gtk_tree_view_class_init): New
	"columns_changed" signal.
	(gtk_tree_view_motion_draw_column_motion_arrow): Change column
	motion code to draw arrows to the side if indicator is outside the
	widget.
	(gtk_tree_view_map_expanded_rows): Implement.
2001-05-09 13:18:46 +00:00
Jonathan Blandford
483f2d5203 new function. (gtk_tree_view_move_column_after): Clean up interface.
Sun Apr 29 20:13:40 2001  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_get_columns): new function.
	(gtk_tree_view_move_column_after): Clean up interface.
2001-04-30 16:16:02 +00:00
Jonathan Blandford
c4f26ae336 Massive reorder/cleanup of a lot of the code. Some documentation added.
Fri Apr 27 20:27:21 2001  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtktreeview.[hc]: Massive reorder/cleanup of a lot of the
	code.  Some documentation added.
2001-04-28 00:29:34 +00:00
Jonathan Blandford
60051ff670 add missing '}' that got munched by #endif.
Mon Apr 23 18:57:03 2001  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtksocket.c (gtk_socket_filter_func): add missing '}' that
	got munched by #endif.

	* gtk/Makefile.am (gtk_plug_c_sources): add missing '\'

	* gtk/gtktreeview.c: Refactored code to clean up a number of
	events.

	* gtk/gtktreemodel.c (gtk_tree_path_compare): Switched return
	values to make consistent with other functions.  Spotted by Jeff
	Franks <jcf@tpg.com.au>.

	* gtk/gtktreeview.h (struct _GtkTreeViewClass): Fixes to signal
	declaration spotted by Jeff Franks <jcf@tpg.com.au>.
2001-04-23 23:03:53 +00:00
Jonathan Blandford
31210813cb fix a fixme.
Sun Apr  8 05:36:06 2001  Jonathan Blandford  <jrb@webwynk.net>

        * gtk/gtktextview.c (gtk_text_view_class_init): fix a fixme.

        * gtk/gtkcellrendertoggle.c: change GTK_TYPE_POINTER to
        GTK_TYPE_STRING.

        * gtk/gtktreeview.c: New functions to allow initial column
        dragging work.

        * gtk/gtktreeviewcolumn.c: Initial column dragging support.

        * tests/testtreefocus.c: give dave some love.

        * tests/testtreesort.c: Modify test to check really long samples.
2001-04-12 16:11:54 +00:00
Jonathan Blandford
461216d45b Bug fix to make trees work again when not sorted.
Mon Apr  2 19:36:57 2001  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtktreestore.c (gtk_tree_store_init):  Bug fix to make trees
	work again when not sorted.

	* gtk/gtktreeview.c (gtk_tree_view_class_init): Add "collapse_row"
	and "expand_row" signal, closing bug 52578.

	* gtk/gtktreeview.c (gtk_tree_view_expand_row): Add signal
	support.

	* gtk/gtktreeview.c (gtk_tree_view_collapse_row): Add signal
	support.
2001-04-02 23:38:54 +00:00
Jonathan Blandford
73dc88d241 modified to use "row_activated" signal.
Fri Mar 16 18:24:53 2001  Jonathan Blandford  <jrb@redhat.com>

	* demos/gtk-demo/main.c (row_activated_cb): modified to use
	"row_activated" signal.

	* gtk/gtktreeview.c (gtk_tree_view_row_activated): oh, the
	stupidity.  Lets actually pass in the row with this signal...
2001-03-16 23:22:46 +00:00
Jonathan Blandford
4d4af2941e s/GTK_TREE_COLUMN/GTK_TREE_VIEW_COLUMN
Fri Mar 16 18:01:17 2001  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtktreeviewcolumn.[ch]: s/GTK_TREE_COLUMN/GTK_TREE_VIEW_COLUMN

	* gtk/gtktreeview.c (gtk_tree_view_row_activated): New signal.

	* gtk/gtktreeview.c (gtk_tree_view_destroy): moved pretty much
	everything into the ::destroy function, and freed a lot more.
2001-03-16 22:59:24 +00:00
Jonathan Blandford
193bed1896 Move handling of buttons fully in gtktreeviewcolumn. This code is less
Thu Mar  1 19:50:56 2001  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_realize_button):
	Move handling of buttons fully in gtktreeviewcolumn.  This code is
	less interrelated then it was, but it still requires the
	GtkTreeView to map it.

	* test/testtreecolumn.c: Now I can add a column to one view,
	remove it, add it to the another view, remove it, then re-add it
	to the first.  Nifty.
2001-03-02 00:49:32 +00:00
Havoc Pennington
4a3c8a367a remove validation idle
2001-02-08  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextview.c (gtk_text_view_destroy_layout): remove
	validation idle

	* demos/gtk-demo/main.c (create_tree): adjust to changes in text
	cell renderer

	* demos/pixbuf-demo.c (timeout): remove deprecated
	gtk_widget_draw

	* demos/testpixbuf-save.c (main): remove deprecated
	gtk_drawing_area_size

	* gtk/gtktreeview.c (gtk_tree_view_size_allocate): allocate
	buttons even if the model isn't setup. gtk_tree_view_check_dirty()
	at the start of the allocation.
	(gtk_tree_view_check_dirty): handle column->button == NULL, handle
	unsetup or NULL model.

	* gtk/gtkstyle.c (gtk_default_draw_flat_box): drawing for the
	even/odd/sorted cells in the tree view.

	* gtk/gtktreeselection.c (gtk_tree_selection_real_unselect_all):
	bugfixes

	* gtk/gtktreeview.c: assorted bugfixy stuff. Draw the row
	backgrounds with draw_flat_box using different detail for even/odd
	rows.

	* gtk/gtkrbtree.c, gtkrbtree.h: Keep track of the parity of each
	row, so we can draw the alternating colors thing

	* gtk/gtktexttag.c (gtk_text_tag_set_property): if we change a
	property from a synonym property, notify for the synonym.
	Also, nuke the background_gdk_set and foreground_gdk_set synonyms
	(gtk_text_tag_get_property): Always return the font, even if
	all its fields aren't set

	* gtk/gtkcellrenderertext.h (struct _GtkCellRendererText): don't
	store the attr list; it leaves us with no way to change attributes
	in _render according to the render flags, and no way to implement
	get_property. Instead store all the specific text attributes.
	Separate whether an attribute is enabled from its value. Sync all
	properties with GtkTextTag, make them all consistent, etc.

	* gtk/gtkcellrenderer.h: Add a flag GTK_CELL_RENDERER_SORTED so
	renderers can highlight the sort row/column

	* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_get_property): use
	accessor functions to get values; this has the side effect of
	showing up which accessor functions were missing. Added those.

	* gtk/gtktreeviewcolumn.h: Replace set_justification with
	set_alignment, to be consistent with GtkLabel, GtkMisc

	* gtk/gtktreeviewcolumn.c: Added code to display sort indicator
	arrow.

	* gtk/Makefile.am (gtk_public_h_sources): add gtktreesortable.h

	* gtk/gtktreesortable.h: updates in here
2001-02-08 23:36:53 +00:00
Havoc Pennington
5cd2993201 fix bug in here where prev pointer was set to the wrong thing
2001-01-30  Havoc Pennington  <hp@redhat.com>

	* gtk/gtkliststore.c (gtk_list_store_insert_before): fix bug in
	here where prev pointer was set to the wrong thing

	* gtk/gtktreemodel.c (gtk_tree_path_is_ancestor): new function
	(gtk_tree_path_is_descendant): new function

	* gtk/gtkliststore.c (gtk_list_store_iter_n_children): return
	cached length
	(gtk_list_store_get_iter): don't modify iter if we can't get the
	path.

	* gtk/gtkliststore.h (struct _GtkListStore): cache the length

	* gtk/gtktreednd.h: add virtual function row_drop_possible() to
	GtkTreeDragDest

	* gtk/gtktreestore.c (copy_node_data): fix varargs type error that
	was causing segfault

	* gtk/gtktreedatalist.c (_gtk_tree_data_list_node_copy): set next
	pointer to NULL

	* gtk/gtktreestore.c (gtk_tree_store_append): fix memleak

	* gtk/gtkliststore.c (gtk_list_store_iter_next): don't modify iter
	on returning FALSE
	(gtk_list_store_iter_children): ditto
	(gtk_list_store_iter_nth_child): ditto
	(gtk_list_store_iter_nth_child): ditto
	(gtk_list_store_iter_parent): ditto

	* gtk/gtktreestore.c (gtk_tree_store_get_path): g_return_if_fail
	on iter->user_data != NULL instead of silently accepting it.
	(gtk_tree_store_iter_next): ditto. Also, don't modify iter unless
	we are returning TRUE.
	(gtk_tree_store_iter_children): ditto
	(gtk_tree_store_iter_nth_child): ditto
	(gtk_tree_store_iter_parent): ditto
	(gtk_tree_store_insert): remove handling of parent->user_data ==
	NULL, replace with parent == NULL

	* gtk/gtktreemodel.c (inserted_callback): put some fixes in here,
	and a comment explaining things

	* gtk/gtktreestore.c: add GtkTreeDragSource/GtkTreeDragDest
	interface support to GtkTreeStore.

	* gtk/gtktreemodel.c (gtk_tree_path_prev): didn't properly return
	FALSE if no prev, fix

	* gtk/gtktreeview.c (set_source_row): use a row reference
	(set_dest_row): use a row reference
2001-01-31 00:57:49 +00:00
Havoc Pennington
ef4356b567 adapt to handle PangoColor
2001-01-26  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextlayout.c (convert_color): adapt to handle PangoColor

	* gtk/gtktreeview.c (gtk_tree_view_widget_to_tree_coords): fix to
	not offset by TREE_VIEW_HEADER_HEIGHT
	(gtk_tree_view_tree_to_widget_coords): fix to not offset by
	TREE_VIEW_HEADER_HEIGHT

	* configure.in (included_loaders): for me, --with-included-loaders
	generates the error "the specified loader yes does not exist",
	i.e. the arg defaults to "yes", so change test for value ""
	to test for value "yes", and include all loaders in that case.

	* gtk/gtkrbtree.c (_gtk_rbtree_get_depth): new function

	* gtk/gtktreeview.c (gtk_tree_view_get_cell_rect): fix to properly
	handle TREE_VIEW_VERTICAL_SEPARATOR
	(gtk_tree_view_bin_expose): fix to consider the row offset as
	pointing halfway into vertical separator.
	(gtk_tree_view_draw_node_focus_rect): ditto

	* gtk/gtkdebug.h, gtk/gtkmain.c (gtk_init_check): Add
	--gtk-debug=updates, which causes gdk_window_set_debug_updates
	(TRUE) to be called.

	* gdk/gdkwindow.c (gdk_window_set_debug_updates): Allow enabling a
	debug mode where the invalid region is colored in on invalidate,
	so you can see the flicker and know whether your redraw code is
	doing a good job.

	* gtk/gtktreeview.c (gtk_tree_view_queue_draw_node): Work in
	tree window coordinates (clip rect is in tree window coords)

	* gtk/Makefile.am: add gtktreednd.[hc]

	* gtk/gtkliststore.c: implement gtktreednd interfaces.

	* gtk/gtktreednd.c, gtk/gtktreednd.h: New interface to support
	drag-and-drop data operations on a model (so we can set up tree
	drag-and-drop automatically)

	* gtk/testgtk.c: Add a window to change sensitivity in the
	GtkLabel test; add a way to change the entry frame in GtkEntry
	test

	* gtk/gtkentry.c (gtk_entry_set_has_frame):
	(gtk_entry_get_has_frame): new functions to remove the frame
	around an entry
	(gtk_entry_size_request): shrink requisition if no frame
	(gtk_entry_draw_focus): don't draw frame if no frame

	* gtk/gtkstyle.c (gtk_default_draw_check): draw custom look for
	checks inside a cell renderer
	(gtk_default_draw_option): ditto for options

	* gtk/gtktreeviewcolumn.c (update_button_contents): add/remove
	children from the alignment, not the button
	(gtk_tree_view_column_init): ref/sink the column, to emulate
	GObject refcounting.

	* gtk/gtkcellrenderer.c (gtk_cell_renderer_init): ref/sink

	* gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
	Use theme functions to draw the toggles

	* gdk/gdkpango.c (gdk_pango_get_gc): use GdkRGB to alloc colors

	* gdk/gdkpango.h, gdk/gdkpango.c: Add GdkPangoAttrStipple and
	GdkPangoAttrEmbossed to use in rendering insensitive text

	* gdk/gdkpango.c (gdk_draw_layout_line): render new properties

	* gtk/gtkstyle.c (gtk_default_draw_layout): handle sensitivity
	using new GDK features
2001-01-26 21:12:05 +00:00
Havoc Pennington
e248e4e79e sync to tree changes
2001-01-19  Havoc Pennington  <hp@redhat.com>

	* demos/gtk-demo/main.c (button_press_event_cb): sync to tree changes

	* gtk/gtkrbtree.c (_gtk_rbtree_node_find_offset): fix this
	function

	* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_widget):
	implement

	* gtk/gtktreeview.c (gtk_tree_view_move_to): rename
	scroll_to_cell, matches TextView scroll functions better
	(gtk_tree_view_tree_to_widget_coords): new function
	(gtk_tree_view_widget_to_tree_coords): new function
	(gtk_tree_view_get_visible_rect): new function
	(gtk_tree_view_get_path_at_pos): accept negative coordinates
	(gtk_tree_view_draw_node_focus_rect): new function moved from
	draw_focus, also, use width of bin_window as width of the focus
	rect
	(gtk_tree_view_expand_row): fix bug where it didn't recognize
	already-expanded rows
	(gtk_tree_view_get_cell_rect): new function
	(gtk_tree_view_get_path_at_pos): return the click position
	relative to the passed-in cell
	(gtk_tree_view_set_expander_column): new function

	* configure.in: remove gtk-config-2.0 chmod

	* gtk/gtktextview.c (gtk_text_view_drag_motion): small cleanups,
	and properly handle drags with targets we don't understand
	(gtk_text_view_drag_end): don't stop scrolling, the source isn't
	scrolling anyway
	(gtk_text_view_drag_drop): stop scrolling here though, and set the
	mark invisible

	* gtk/gtkdnd.c (gtk_drag_dest_find_target): export as a public
	function
	(gtk_drag_dest_get_target_list): new function
	(gtk_drag_dest_set_target_list): new function

	* gtk/gtktreeview.c: Add a bunch of drag-and-drop implementation

	* gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): add fields
	related to drag-and-drop
2001-01-19 22:39:19 +00:00
Owen Taylor
a801ea7bf0 Doc fixups.
Tue Jan  9 11:20:48 2001  Owen Taylor  <otaylor@redhat.com>

	* gtk/gtktreeview.[ch] gtktreemodelsort.[ch] gtknotebook.c
	gdk/gdk-pixbuf.h: Doc fixups.

	* gtk/gtkobject.h: Remove trailing , from enum
2001-01-09 16:23:57 +00:00
Havoc Pennington
5c37906778 hack on this a bit
2001-01-05  Havoc Pennington  <hp@redhat.com>

	* tests/testtreeview.c: hack on this a bit

	* gtk/gtktextlayout.c (gtk_text_layout_class_init):
	s/GTK_RUN_LAST/G_SIGNAL_RUN_LAST

	* gtk/gtktreemodelsimple.h (GTK_IS_TREE_MODEL_SIMPLE_CLASS):
	was spelled incorrectly
	(GTK_IS_TREE_MODEL_SIMPLE): ditto

	* gtk/gtktreeview.c (gtk_tree_view_set_headers_clickable): rename
	from gtk_tree_view_set_headers_active

	* gtk/gtktexttag.c:
	(gtk_text_tag_get_property): handle PROP_DIRECTION
	(gtk_text_tag_set_property): g_object_notify when we toggle the _set
	properties, bug 40235

	* gtk/gtktextiter.c (gtk_text_iter_forward_to_delimiters): rename
	forward_to_line_end
2001-01-06 01:31:58 +00:00
Jonathan Blandford
c42cee3e7f New function.
Mon Oct 30 19:23:50 2000  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_expand_row): New function.

	* gtk/gtktreeview.c (gtk_tree_view_collapse_row): New function.

	* gtk/gtktreeview.c, gtk/gtktreemodel.c, gtk/gtktreeselection.c
	gtk/gtktreestore.h, gtk/gtktreeview.h, gtk/gtktreeviewcolumn.c,
	gtk/gtktreeviewcolumn.h: Fixed inline docs.

	* docs/reference/gtk/tree_widget.sgml: Proto intro to the tree
	widget.  Needs writing someday.

	* docs/reference/gtk/tmpl/gtktree*sgml: Added the tree widget to
	the docs.
2000-10-30 23:21:38 +00:00
Jonathan Blandford
ef7b510f46 Got rid of GtkTreeNode, and changed it to GtkTreeIter. Added iterators
Wed Oct 25 20:40:25 2000  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtktreemodel.h: Got rid of GtkTreeNode, and changed it to
	GtkTreeIter.  Added iterators everywhere.

	* gtk/gtktreeviewcolumn.c: Changed to use the iterators.

	* gtk/gtktreeviewselection.c: Changed to use the iterators.

	* gtk/gtktreestore.c: Changed to use the iterators.

	* gtk/gtkliststore.c: Commented out the code.  Will convert to
	iterators tomorrow.

	* gtk/gtkmodelsimple.c: Commented out the code.  Will convert to
	iterators tomorrow.

	* gtk/treestoretest.c: Changed to use iterators.

	* demos/testgtk/main.c: Moved to use the new iterator system.
2000-10-26 00:36:47 +00:00
Jonathan Blandford
996cfd01c8 New function proposed by Guy Harris <gharris@flashcom.net>. Also, added
2000-10-15  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_insert_column): New function
	proposed by Guy Harris <gharris@flashcom.net>.  Also, added API
	docs to all public functions.
2000-10-16 03:18:49 +00:00
5
e6b9f2910b Fix GtkTreeNode *node ->GtkTreeNode node issue.
2000-10-15    <jrb@redhat.com>

	* gtk/gtktreeview.c, gtk/gtktreeview.h, gtk/gtktreestore.h,
	gtk/gtktreestore.c, gtk/gtkliststore.h, gtk/gtkliststore.c,
	gtk/gtkmodelsimple.c, gtk/gtkmodelsimple.h, gtk/gtktreedatalist.c,
	gtk/gtktreemodel.h, gtk/gtktreeselection.c,
	gtk/gtktreeselection.h: Fix GtkTreeNode *node ->GtkTreeNode node
	issue.
2000-10-15 17:46:23 +00:00
4
3ff4a2c081 Checked in initial draft of the new tree widget.
2000-10-04    <jrb@redhat.com>

	* gtk/gtk{tree,cell}?*.[ch]: Checked in initial draft of the new
	tree widget.
2000-10-05 01:04:57 +00:00