Commit Graph

330 Commits

Author SHA1 Message Date
Matthias Clasen
093612a46c Use G_DEFINE_TYPE for GtkIconViewItemAccessible 2011-07-25 00:46:34 -04:00
Matthias Clasen
2c6c0fe329 Minor cleanups 2011-07-25 00:34:08 -04:00
Matthias Clasen
a4560cdfbb Rework AtkText implementation
Use a PangoLayout, instead of storing a text buffer per item.
And use gtkpango api instead of implementing it all ourselves.
2011-07-25 00:27:42 -04:00
Matthias Clasen
26a040e81b Drop some grandiosity from the AtkAction implementation
There is only one action here, no need to pretend otherwise.
2011-07-24 23:59:00 -04:00
Matthias Clasen
625947f9f2 Use G_DEFINE_TYPE for GtkIconViewAccessible 2011-07-24 23:48:41 -04:00
Matthias Clasen
fadd58a0fb Drop GtkIconViewAccessiblePrivate
Just put the members in GtkIconViewAccessible itself.
2011-07-24 23:28:57 -04:00
Matthias Clasen
8a544d54ea Move GtkBuildable implementation up before accessibility
Just code rearrangement, no other changes.
2011-07-24 23:04:02 -04:00
Matthias Clasen
3e05518881 Drop unneeded includes
We no longer use the private GtkAccessible api here.
2011-07-14 19:40:50 -04:00
Cosimo Cecchi
1fdfb18c37 iconview: make it possible for selected cells to render a border
Call gtk_render_frame() after gtk_render_background() there.

https://bugzilla.gnome.org/show_bug.cgi?id=654179
2011-07-08 11:36:04 -04:00
Matthias Clasen
521807f33d Drop the factory from the icon view accessible 2011-07-05 16:10:26 -04:00
Matthias Clasen
89e57c6978 Convert GailContainer to GtkContainerAccessible 2011-07-05 16:08:57 -04:00
Matthias Clasen
6c9f20e58d GtkIconViewPrivate: Improve struct packing 2011-04-12 12:33:24 -04:00
Tristan Van Berkom
f85e80aada More patchwork for icon view subclasses that access the icon view api prematurely.
In this patch we adress rows_reordered() and row_deleted() callbacks
(since some icon view subclasses manipulate the connected treemodel
from _init()).
2011-02-25 16:00:20 +09:00
Tristan Van Berkom
2408b1c59e More patchwork to ensure GtkIconView subclasses can use the icon view api
from the subclass's instance structure initializer
2011-02-25 15:07:55 +09:00
Tristan Van Berkom
4164a49b84 Added documentation to "cell-area" construct-only properties.
Indicate what kind of area will be used by default if none is
provided by the user.
2011-02-24 16:05:41 +09:00
Tristan Van Berkom
4d76644f5c Add more defensive code to avoid accessing GtkIconView's cell area before it exists.
Adding these cases here to cater to icon view subclasses that want to
access icon view APIs from the instance structure initializer instead
of properly waiting for the super class to initialize and adding renderers
from the ->constructor() vfunc.
2011-02-23 20:50:50 +09:00
Matthias Clasen
c9b152ec71 Remove a leaking get_name implementation
This was leaking a lot of memory; just rely on atk_object_get_name.
2011-02-17 15:57:39 -05:00
Matthias Clasen
e757d1b2d2 Use _gtk_accessible_set_factory_type for GtkIconView 2011-02-17 01:30:33 -05:00
Matthias Clasen
beb8c290d1 Always chain up in ::style-updated
This was not handled consistently, but the default handler
does useful things, so we should always chain up.
2011-02-07 07:30:37 -05:00
Matthias Clasen
726b0d8736 Bandaid fix for icon view subclassing
I've decided that it is isn't feasible to make cell areas runtime-settable
in the time we have left before 3.0, therefore, I'm going with the
approach to allow init() functions to instantiate the default cell area
and issue a warning if a construct property is ignored.

This is not ideal, but it keeps existing icon view and combo box
subclasses working.

https://bugzilla.gnome.org/show_bug.cgi?id=639139
2011-01-31 17:39:42 -05:00
Carlos Garnacho
3efc1b0b4f Make GtkIconView use GtkStyleContext 2011-01-27 20:57:11 +01:00
Carlos Garnacho
41d6837fa2 Make GtkCellArea use GtkStyleContext
gtk_cell_area_[gs]et_style_detail() is no longer needed, as
the passed widget's context would already have all necessary
info.
2011-01-27 19:32:07 +01:00
Matthias Clasen
d9fcc4c630 Silence new gcc warnings
gcc 4.6.0 has started to warn about set-but-unused variables.
So don't do that, then.
2011-01-23 21:51:38 -05:00
Pavel Holejsovsky
2fb1c06402 [GI] Add missing (out) and (array) annotations 2011-01-20 13:57:20 +01:00
Pavel Holejsovsky
3c8fc21e9b [GI] Fixes of existing incorrect annotations 2011-01-20 13:56:06 +01:00
Pavel Holejsovsky
a1c297a310 [GI] Cosmetic cleanups of annotations and doc comments
This change does not introduce any functionality change, mostly
cosmtic cleanups, like re-linebreak when introduced annotations messed
up indentation or whitespace errors fixes.
2011-01-18 17:31:59 +01:00
Martin Pitt
b208b9c0e9 Fix GtkIconView GI annotations
Add the missing (out) annotations, and a missing allow-none.
2011-01-18 12:32:52 +01:00
Martin Pitt
234b3b2c6f Annotate GtkIconView array arguments 2011-01-17 16:01:40 +01:00
Tristan Van Berkom
4d8c7c5782 Ensure that GtkIconView items get redrawn when the focus cell changes.
Seems the redraw was not happenning from keynav when set_focus_cell()
was called because keynav already updates the focus-cell. Now we
just unconditionally redraw the focus item when set_focus_cell() is
called.
2011-01-06 13:51:49 +09:00
Tristan Van Berkom
bab0f5a5c1 Fixed GtkIconView keynav
Icon View was not initially setting focus on a cell when
focus initially comes into the view. Focusing into whatever
is the first cell in the cursor item when set_cursor_item
is called with a NULL cell fixes this.
2011-01-06 13:51:49 +09:00
Tristan Van Berkom
b7c25c41d6 Fixed gtkiconview dispose cycle to not fire warnings. 2011-01-06 13:51:49 +09:00
Tristan Van Berkom
56580d1b8b Restored the old GtkIconView guess for wrap-width/width size of text cell
GtkIconView sets the minimum width of the text cell to be at least 50
pixels and otherwise twice the width of the first pixbuf cell found
in the icon list.
2011-01-06 13:51:49 +09:00
Tristan Van Berkom
60e5fcf4db Made GtkIconView reset the context and invalidate all sizes when a row changes.
GtkIconView should have a "grow-only" mode to handle optimization to
only allow icons to grow in width when rows change, however since
GtkIconView still does not handle large numbers of rows for now we'll
just relayout the whole thing whenever a series of rows change.

Also fixed up to watch the context incase of implicit resets.
2011-01-06 13:51:49 +09:00
Tristan Van Berkom
6036c51d52 Removed gtk_icon_view_get_item_area()
Now use a GdkRectangle at the begining of the GtkIconViewItem
structure and just re-cast the struct to get the item area.
2011-01-06 13:51:49 +09:00
Tristan Van Berkom
d0f13ae52c Fixed GtkIconView buildable custom tag end to let cell layout properly
handle <cell-packing>
2011-01-06 13:51:48 +09:00
Tristan Van Berkom
01a35e4483 Added gtk_icon_view_new_with_area() 2011-01-06 13:51:48 +09:00
Tristan Van Berkom
a160358830 GtkIconView now uses a per-row GtkCellAreaContext to store the alignments
of each row.

GtkIconView now properly calculates the height of each row separately
using a separate GtkCellAreaContext stored in an array which it can
always easily index with the item->row index for all purposes.
2011-01-06 13:51:48 +09:00
Tristan Van Berkom
2d5eadb7f9 Alignments with variable row heights almost works perfectly.
However, I'm going to have to figure a way to store the alignments
for rows separately, this may involve using a separate GtkCellAreaContext
for each row, unfortunately.
2011-01-06 13:51:48 +09:00
Tristan Van Berkom
e51592c0b3 Experimenting with allocating the context a different height for each row. 2011-01-06 13:51:48 +09:00
Tristan Van Berkom
c77abe1f83 Committing working version of GtkIconView using GtkCellArea.
Some things still not sorted out, GtkCellAreaContext is not allocated
so icons dont recieve alignments yet, focus navigation is not exactly
what it used to be (maybe we can work around that by observing the
item orientation and explicitly setting focus to the same cell when
navigating in the wrong orientation).
2011-01-06 13:51:48 +09:00
Tristan Van Berkom
951ea857cc Initial messy commit of GtkIconView using GtkCellArea (nothing works yet). 2011-01-06 13:51:48 +09:00
Tristan Van Berkom
6d483ed930 Added GtkCellArea & GtkCellAreaContext to GtkIconView
First commit to icon-view-refactor, essentially only adds the
construct-only "cell-area" property and the context but doesnt
use it.
2011-01-06 13:51:48 +09:00
Benjamin Otte
a317499031 iconview: Update adjustment usage for sealing 2011-01-05 23:50:21 +01:00
Benjamin Otte
aa495f00b4 iconview: Use gtk_adjustment_configure() instead of g_object_set()
Simplifies code quite a bit apart from jsut making it more readable.
2011-01-05 23:50:21 +01:00
Benjamin Otte
3f1a65d6f5 iconview: Use set_[hv]adjustment_values() also when just changing upper
Simplifies the code quite a bit and the code is smart enough to not do
extra work if only one value changes.
2011-01-05 23:50:21 +01:00
Matthias Clasen
98440ad031 Remove gtktypeutils altogether
Based on patches by Javier Jardón.

https://bugzilla.gnome.org/show_bug.cgi?id=629955
2011-01-04 14:51:19 -05:00
Matthias Clasen
b5c6904c2f Drop explicit includes of gdkkeysyms.h
These are no longer needed. At the same time, port gtkimcontextsimpleseqs.h
to use the new GDK_KEY_ symbols.
2011-01-04 12:21:41 -05:00
Javier Jardón
fbbe9f5191 gtk/gtkiconview.c: Use accessor functions to access GtkSelectionData 2010-12-15 23:58:16 +00:00
Matthias Clasen
83204928b9 Don't access GdkDragContext fields directly
Instead use the accessors.
2010-12-10 00:59:07 -05:00
Benjamin Otte
645d0ac403 API: gdk: Remove depth argument from gdk_window_get_geometry()
We don't want to expose depth anymore. If you need it, query the visual.
2010-12-06 01:02:52 +01:00
Bastien Nocera
66122b369e gtk: Centre the text under the icon in GtkIconView
No point in setting the alignment to centre if we don't center it
within the cell itself.
2010-12-02 15:04:32 +00:00
Matthias Clasen
289ad41bd1 Fix recursion in the GtkIconView accessible initialization
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=634474
2010-11-27 20:56:09 -05:00
Carlos Garcia Campos
3b90a21763 docs: Mention that tooltip_column text should be escaped in GtkIconView 2010-11-14 12:39:48 +01:00
Tristan Van Berkom
814cd2c3ff Removed size_request from GtkIconView. 2010-10-27 14:11:36 +09:00
Tristan Van Berkom
3fe0fb4ed9 Added GtkScrollablePolicy property to scrollable interface
This patch adds the GtkScrollablePolicy type property to GtkScrollable
and implements it in all subclasses. GtkScrolledWindow observes this
property to make a good guess about when to show/hide scrollbars for
height-for-width content.

Most scrollable children do not do height-for-width *yet* but
most certainly will (toolpalette, treeview, iconview, textview
widgets all TODO), for scrollable widgets that do have a minimum
and natural size, it's important for them to observe the state
of this property in order to properly drive the scroll adjustments
according to the desired GtkScrollablePolicy. This patch makes
GtkViewport do this.

Patch also adds tests/testscrolledwindow.c to display the effects
of this property.
2010-10-26 10:15:56 +09:00
Matthias Clasen
0d9ebb501d Move min-display-width/height to GtkScrolledWindow
It is just too annoying to have to implement these properties in
every scrollable. Instead, we now have ::min-content-height/width
in GtkScrolledWindow.

We also add GtkScrollablePolicy to determine how to size the
scrollable content.
2010-10-22 19:21:17 +02:00
Tadej Borovšak
55196a705f Add GtkScrollable interface
The GtkScrollable interface provides "hadjustment" and "vadjustment"
properties that are used by GtkScrolledWindow. It replaces
the ::set_scroll_adjustment signal. The scrollable interface
also has ::min-display-width/height properties that can be
used to control the minimally visible part inside a scrolled window.
2010-10-22 11:03:45 +02:00
Michael Natterer
e4654327df gtk: change GtkIconView to "support" actual trees
Remove the check for GTK_TREE_MODEL_LIST_ONLY and make the view
display only the first level of the tree, ignoring all insert, remove
etc. events on the model's branches. This enables generic application
code which always produces GtkTreeStores (also for flat lists) to
display grids of these flat trees.
2010-10-21 12:57:55 +02:00
Kristian Rietveld
cc22469b69 Icon view must layout before the draw handler is called
gtk_icon_view_layout(), which can resize the bin window and thus
underlying surfaces, could be called from gtk_icon_view_draw().  So
we have to make sure that layouting is done before the draw handler is
called.  We use the same construction as in tree view here, the layout
idle handler is installed with a higher priority than
GDK_PRIORITY_REDRAW and we wrap the call to gdk_window_process_updates()
in a new function that will flush the layout queue beforehand.
2010-10-17 10:30:46 +02:00
Javier Jardón
b072ea220c Remove unneded casts
As gtk_adjustment_new() returns a GtkAdjustment* now

https://bugzilla.gnome.org/show_bug.cgi?id=630731
2010-09-29 01:18:10 +02:00
Javier Jardón
eac1959d2c Move destroy signal to GtkWidget
Also make GtkWidget derive from GInitiallyUnowned
2010-09-26 22:18:18 -04:00
Benjamin Otte
7a2010ae28 iconview: Use gtk_cairo_transform_to_window() 2010-09-26 15:11:46 +02:00
Benjamin Otte
e66129015d cellrenderer: Merge GtkCellSizeRequest into GtkCellRenderer
This mostly goes to keep consistency with the changes to GtkSizeRequest
in the last patch, as GtkCellSizeRequest requires GtkCellRenderer and
GtkCellRenderer implements GtkCellSizeRequest there's no use in keeping
them separate.

This patch renames the functions:
gtk_cell_size_request_get_request_mode()
  => gtk_cell_renderer_get_request_mode()
gtk_cell_size_request_get_width()
  => gtk_cell_renderer_get_preferred_width()
gtk_cell_size_request_get_height()
  => gtk_cell_renderer_get_preferred_height()
gtk_cell_size_request_get_size()
  => gtk_cell_renderer_get_preferred_size()
gtk_cell_size_request_get_width_for_height()
  => gtk_cell_renderer_get_preferred_width_for_height()
gtk_cell_size_request_get_height_for_width()
  => gtk_cell_renderer_get_preferred_height_for_width()
... and moves the corresponding vfuncs to GtkCellRenderer.

The patch also renames the implementations of these functions in cell
renderers to include the word "preferrred".
2010-09-26 15:11:45 +02:00
Benjamin Otte
d9c9259861 Move GtkSizeRequest into GtkWidget
It doesn't make sense to keep them separate as GtkSizeRequest requires a
GtkWidget and GtkWidget implements GtkSizeRequest, so you can never have
one without the other.
It also makes the code a lot easier because no casts are required when
calling functions.

Also, the names would translate to gtk_widget_get_width() and people
agreed that this would be a too generic name, so a "preferred" was added
to the names.

So this patch moves the functions:
gtk_size_request_get_request_mode() => gtk_widget_get_request_mode()
gtk_size_request_get_width() => gtk_widget_get_preferred_width()
gtk_size_request_get_height() => gtk_widget_get_preferred_height()
gtk_size_request_get_size() => gtk_widget_get_preferred_size()
gtk_size_request_get_width_for_height() =>
  gtk_widget_get_preferred_width_for_height()
gtk_size_request_get_height_for_width() =>
  gtk_widget_get_preferred_height_for_width()
... and moves the corresponding vfuncs to the GtkWidgetClass.

The patch also renames the implementations of the vfuncs in widgets to
include the word "preferrred".
2010-09-26 15:11:45 +02:00
Benjamin Otte
a145deb083 iconview: Get rid of gdk_drawable_get_size() usage 2010-09-26 15:11:44 +02:00
Benjamin Otte
1142c8bf18 API: gtk_cell_renderer_render_cairo() => gtk_cell_renderer_render() 2010-09-26 15:11:43 +02:00
Benjamin Otte
1d3f6b30b0 API: Rename gtk_cairo_paint_*() to gtk_paint_*()
Large patch, but just renaming.
Indentation should still mostly be correct because I took care of
keeping the indentation for this function name.
2010-09-26 15:11:42 +02:00
Benjamin Otte
8fc35150a2 iconview: Port to draw vfunc 2010-09-26 15:11:37 +02:00
Benjamin Otte
c8b16f66b6 iconview: Check if the cr is clipped instead of using region 2010-09-26 15:11:37 +02:00
Benjamin Otte
ab781bd89b iconview: Simplify rubberband drawing 2010-09-26 15:11:37 +02:00
Benjamin Otte
e8a6bad00b gtk: Don't set colormap anymore when creating GDK windows
Colormaps are about to be removed, so not using them sounds like an
awesome idea.
2010-09-26 15:11:31 +02:00
Benjamin Otte
b186680a43 API: make gtk_icon_view_create_drag_icon() return a cairo_surface_t
GdkPixmap is going to die!
2010-09-26 15:04:02 +02:00
Benjamin Otte
b259dd9aba iconview: Port to Cairo rendering 2010-09-26 15:03:01 +02:00
Benjamin Otte
20d1030823 iconview: No need to set background 2010-09-26 15:03:00 +02:00
Matthias Clasen
e0aa12eb0a Tons of transfer annotations 2010-09-21 00:18:11 -04:00
Matthias Clasen
1dcd209cdd Fix a few dubious return values in return_if_fail calls
These were pointed out in bug 623958.
2010-09-19 01:58:46 -04:00
Javier Jardón
15a5a231fc Do not use deprecated gtk_cell_renderer_get_size()
Use gtk_cell_size_request_get_size() instead

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=629785
2010-09-17 19:59:56 +02:00
Javier Jardón
b140884fec Use gtk_size_request_get_size() instead deprecated gtk_widget_size_request()
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=629598

Signed-off-by: Javier Jardón <jjardon@gnome.org>
Signed-off-by: Tristan Van Berkom <tristanvb@openismus.com>
2010-09-15 03:02:58 +02:00
Tristan Van Berkom
73ea777c33 Fixed GtkTextView & GtkIconView to consult it's true previous size request
Fixed issues in my previous patch for bug 626939 removing GtkRequisition
cache: these widgets monitor the previous requested size and decide whether
to queue a resize when the content changes based on it's prior request.
2010-09-09 17:19:18 +09:00
Colin Walters
913cdf3be7 GDK: Prefix key names with KEY_
The keysyms create a lot of potential namespace conflicts for
C, and are especially problematic for introspection, where we take
constants into the namespace, so GDK_Display conflicts with GdkDisplay.

For C application compatiblity, add gdkkeysyms-compat.h which uses
the old names.

Just one user in GTK+ continues to use gdkkeysyms-compat.h, which is
the gtkimcontextsimple.c, since porting that requires porting more
custom Perl code.
2010-09-08 18:51:44 -04:00
Javier Jardón
89e8f79f07 gtk/gtkiconview.c: use accessor functions to access GtkWidget 2010-09-08 21:13:04 +02:00
Tristan Van Berkom
9934007420 Completely removed requisition cache from GtkWidget instance structure.
Since we have a new mechanism for requesting sizes: GtkSizeRequestIface;
it makes no sense to maintain this cache on the GtkWidget structure...
removing the requisition cache however does not break the old "size-request"
signal which is there for backwards compatability reasons.

In any case widget->requisition should not have been accessed,
gtk_widget_get_child_requisition() would have been the correct way
to consult the cache.

This commit also deprecates the newly added gtk_widget_get_requisition()
API and makes it fallback on gtk_size_request_get_size().
2010-09-08 18:50:24 +02:00
Matthias Clasen
e4af3782d3 Rename GtkIconView::orientation property
Rename the ::orientation property of GtkIconView to item-orientation,
which is both clearer and avoids the conflict with the orientation
property of GtkOrientable implementations.
2010-09-01 23:03:48 -04:00
Benjamin Otte
53b9bdc3fc iconview: Remove debug drawing code
It uses APIs I'm about to deprecate.
2010-08-10 21:02:27 +02:00
Javier Jardón
754dc6491b GtkIconView: Unseal private pointer 2010-07-13 19:40:48 +02:00
Javier Jardón
db584abef3 Use accessor functions to access GtkCellRenderer 2010-07-13 19:40:45 +02:00
Javier Jardón
5ee19bdafe Use accessor functions to access GtkAccesible variables 2010-07-13 19:40:45 +02:00
Javier Jardón
0a07e9733b gtk/: fully remove gtkalias hacks
https://bugzilla.gnome.org/show_bug.cgi?id=623845
2010-07-10 02:51:26 +02:00
Philip Withnall
0b51abbfdf Add (out) annotations to GtkTreeIter parameters 2010-07-07 18:20:37 +02:00
Florian Müllner
1e1c5e3ca1 [iconview] Fix segfault when using rubberband selection
When iterating over the cairo region's rectangles, do not decrement
the counter twice ...

https://bugzilla.gnome.org/show_bug.cgi?id=623389
2010-07-02 15:39:02 +02:00
Benjamin Otte
300e6b84cd s/GdkRegion/cairo_region_t/ in all of gtk
https://bugzilla.gnome.org/show_bug.cgi?id=613284
2010-06-29 16:06:38 +02:00
Benjamin Otte
3e96cfe8fc Deprecate the GdkRegion API
Includes fixing all callers to use the cairo region API instead. This is
usually just replacing the function names, the only difference is
gdk_region_get_rectangles() being replaced by
cairo_region_num_rectangles() and cairo_region_get_rectangle() which
required a bit more work.

https://bugzilla.gnome.org/show_bug.cgi?id=613284
2010-06-29 16:06:38 +02:00
Colin Walters
905f988166 Revert "Add length to gtk_tree_path_get_indices"
This reverts commit eebb16eb1a.

Was an accidental commit.
2010-06-28 14:15:10 -04:00
Colin Walters
eebb16eb1a Add length to gtk_tree_path_get_indices
The old version wasn't introspectable as it didn't have a length
return parameter.  Also, delete gtk_tree_path_get_indices_with_depth,
since it's no longer needed.
2010-06-28 13:50:36 -04:00
Matthias Clasen
e17b9f282f Get rid of templates that gtk-doc touches during distcheck
In an attempt to make distcheck not touch any files under source
control.
2010-06-08 19:48:15 -04:00
Matthias Clasen
c557f7b7c4 Improved icon view keynav
Use ::keynav-failed for arrow navigation in icon views, so that
it is possible to override error handling. Also add API to get the
row/col of an item. With this, it is possible to make arrow keynav
span adjacent icon views, which is desired in the new control-center
shell. testiconview-keynav demonstrates this.
2010-05-30 02:17:51 -04:00
Matthias Clasen
6737d91d28 Trivial typo fix 2010-05-30 02:17:51 -04:00
Matthias Clasen
bd4609b140 Merge the xi2-for-master branch 2010-05-25 18:38:44 -04:00
Javier Jardón
b18b33ae82 Revert "Forward-port a GtkAdjustment compatibility fix"
In the early 2.14.x releases, GtkAdjustment was changed to enforce
that values are restricted to the range [lower, upper - page_size].
This has always been the documented behaviour, and the recommended
practice is to set page_size to 0 when using adjustments for simple
scalar values, like in a slider or spin button.
Due to the large number of applications that are affected by this
change, the behaviour has been reverted to the old behaviour in
2.14.3, with an explicit warning that this change will be
reintroduced in 2.90.

This reverts commit e6373738fc.

https://bugzilla.gnome.org/show_bug.cgi?id=619474
2010-05-24 15:39:30 +02:00
Javier Jardón
32b9aeaadd Don't use GTK_WIDGET_STATE in internal code anymore
Use gtk_widget_get/set_state() instead

https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-03-09 02:40:17 +01:00