Benjamin Otte
729f80b554
dnd: Connect to raw func for drag hilight
2010-09-26 15:11:40 +02:00
Benjamin Otte
830cda9e32
colorsel: Connect to draw signal
2010-09-26 15:11:40 +02:00
Benjamin Otte
b717f1b265
filechooserentry: Connect to draw event
2010-09-26 15:11:40 +02:00
Benjamin Otte
8f2fdec7d6
colorbutton: Connect to draw event
2010-09-26 15:11:40 +02:00
Benjamin Otte
5f771c8a9f
notebook: Connect to draw signal
2010-09-26 15:11:40 +02:00
Benjamin Otte
c54968e964
tooltip: Connect to draw signal
2010-09-26 15:11:40 +02:00
Benjamin Otte
bec11c352d
toolitemgroup: Connect to draw signal
2010-09-26 15:11:40 +02:00
Benjamin Otte
a4bbe4da10
assistant: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
b0c5302115
trayicon: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
1b9f793311
window: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
15f48a818d
window: Remove hack to set background
...
I can't see this having any effect in current code, but who knows...
2010-09-26 15:11:39 +02:00
Benjamin Otte
67299ed106
expander: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
e63d6dd379
frame: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
fac27827c4
frame: Remove unneeded is_drawable() check
2010-09-26 15:11:39 +02:00
Benjamin Otte
ff97485695
API: checkbutton: Port to draw vfunc
...
Requires changing the API of the draw_indicator vfunc.
2010-09-26 15:11:39 +02:00
Benjamin Otte
be8a398bb5
radiobutton: Remove redundant is_drawable() check
2010-09-26 15:11:39 +02:00
Benjamin Otte
70bdbb3f4c
checkbutton: Remove redundant is_drawable() check
2010-09-26 15:11:39 +02:00
Benjamin Otte
66bd7c1578
checkbutton: Remove excessive is_drawable() check
2010-09-26 15:11:39 +02:00
Benjamin Otte
6a0c31143f
handlebox: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
2e53b58b01
handlebox: Simplify painting code
2010-09-26 15:11:39 +02:00
Benjamin Otte
08d05f954d
handlebox: Don't draw outside of expose events
...
We do a queue_draw() via queue_resize() here, so everything's fine.
2010-09-26 15:11:39 +02:00
Benjamin Otte
748d3d612d
button: Port to draw vfunc
...
Also port togglebutton, they use the same paint function.
2010-09-26 15:11:39 +02:00
Benjamin Otte
e0be884297
button: Remove is_drawable() check
...
It's already done in the expose function
2010-09-26 15:11:39 +02:00
Benjamin Otte
ee15f5aab1
tearoffmenuitem: remove is_drawable() check
2010-09-26 15:11:39 +02:00
Benjamin Otte
c9c9d2ac15
API: checkmenuitem: Port to draw vfunc
...
Requires changing the draw_indicator vfunc to take a cairo_t.
2010-09-26 15:11:39 +02:00
Benjamin Otte
79477e097d
tearoffmenuitem: Port to draw vfunc
2010-09-26 15:11:39 +02:00
Benjamin Otte
557b9d0b26
tearoffmenuitem: Don't clear the window, it should be clear already
2010-09-26 15:11:38 +02:00
Benjamin Otte
d992df0a47
tearoffmenuitem: Merge paint() into expose()
2010-09-26 15:11:38 +02:00
Benjamin Otte
6f6c81e527
menuitem: Remove is_drawable() check
2010-09-26 15:11:38 +02:00
Benjamin Otte
475f96216d
menuitem: Port to draw vfunc
2010-09-26 15:11:38 +02:00
Benjamin Otte
e6d1c8aeab
menuitem: Move paint function into expose function
2010-09-26 15:11:38 +02:00
Benjamin Otte
1f640d127e
combobox: Port to draw vfunc
2010-09-26 15:11:38 +02:00
Benjamin Otte
fe4c61b1ec
eventbox: Port to draw vfunc
2010-09-26 15:11:38 +02:00
Benjamin Otte
d17ba1d30a
eventbox: Merge paint function into expose function
2010-09-26 15:11:38 +02:00
Benjamin Otte
ce2d6cc015
scrolledwindow: Port to draw vfunc
2010-09-26 15:11:38 +02:00
Benjamin Otte
5eabd8c6fa
scrolledwindow: Move paint function into expose handler
...
Also remove the is_drawable() check. It will not be needed once we have
the draw vfunc.
2010-09-26 15:11:38 +02:00
Benjamin Otte
8af968946f
viewport: No need to check if the widget is drawable anymore
2010-09-26 15:11:38 +02:00
Benjamin Otte
bf8df2daea
viewport: Port to draw vfunc
2010-09-26 15:11:38 +02:00
Benjamin Otte
4a23b12911
viewport: Pass sizes explicitly to paint functions
2010-09-26 15:11:38 +02:00
Benjamin Otte
e087fe7e99
viewport: Merge gtk_viewport_paint() into expose function
2010-09-26 15:11:38 +02:00
Benjamin Otte
01a1e16dcf
viewport: Don't paint stuff in realize handler
2010-09-26 15:11:38 +02:00
Benjamin Otte
f383e1f183
notebook: Port to draw vfunc
2010-09-26 15:11:38 +02:00
Benjamin Otte
21099d31ed
notebook: The drawable check is not necessary
...
Large patch, but that's only indentation.
2010-09-26 15:11:38 +02:00
Benjamin Otte
fadf269a36
notebook: Draw tabs and arrows with Cairo
...
Includes a fix to only draw the current page once during a drag
operation.
2010-09-26 15:11:38 +02:00
Benjamin Otte
ad030e1696
notebook: Simplify draw_tab function a bit
...
Don't keep lots of local variables that are only used once.
2010-09-26 15:11:38 +02:00
Benjamin Otte
806bcb10ff
notebook: remove check for is_drawable
...
When we reach that code, the widget will always be drawable
2010-09-26 15:11:37 +02:00
Benjamin Otte
c46ce97145
notebook: Reorder expose function in preparation of draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
f94ff0b3b9
notebook: Use a for loop when iterating over a list
2010-09-26 15:11:37 +02:00
Benjamin Otte
468e453a31
notebook: Draw focus when drawing tab
...
Instead of using a special function, draw the focus of a tab when the
tab actually is painted. Simplifies the code quite a bit.
2010-09-26 15:11:37 +02:00
Benjamin Otte
a5e487846a
notebook: Remove useless optimization
...
It will become especially useless once we draw with Cairo exclusively.
2010-09-26 15:11:37 +02:00
Benjamin Otte
1c94efc921
paned: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
f2d7e6c8d4
infobar: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
299d533376
statusbar: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
782af63273
layout: Port to draw vfunc
2010-09-26 15:11:37 +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
0d6461714b
menu: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
240ca0bb21
menubar: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
00375c7692
textview: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
9daab81ab5
separatortoolitem: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
818005f3fe
toolbar: Port to draw vfunc
2010-09-26 15:11:37 +02:00
Benjamin Otte
9a8c9d6579
toolbar: Don't propagate events to placeholders
...
In particular don't when that's done using uninitialized memory
2010-09-26 15:11:36 +02:00
Benjamin Otte
a18ec3485c
toolpalette: Port to draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
f525837e39
treeview: Port to draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
327a04807e
treeview: Update rubberbanding code to Cairo
2010-09-26 15:11:36 +02:00
Benjamin Otte
bf3b4438bb
treeview: Do not put different windows in else if branches anymore
2010-09-26 15:11:36 +02:00
Benjamin Otte
f679516ce1
treeview: Use Cairo for all bin window drawing
2010-09-26 15:11:36 +02:00
Benjamin Otte
62f5fdc856
treeview: Invalidate on expander changes, don't just repaint
...
Repaints are supposed to be initiated by GDK, not by random repaints.
2010-09-26 15:11:36 +02:00
Benjamin Otte
bc1cd6c5cb
treeview: Draw empty tree view with Cairo
2010-09-26 15:11:36 +02:00
Benjamin Otte
0cbe62f943
API: Add gtk_container_propagate_draw()
...
Equivalent to gtk_container_propagate_expose(), just for the draw event.
Also port GtkContainer to the draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
90379ed68a
widget: Store the expose event in the cairo_t, not just the window
...
This way we can grab it for propagating expose events. Not sure if we
need to do this once we're all Cairo, but for now we do.
2010-09-26 15:11:36 +02:00
Benjamin Otte
fb4ba51d44
accellabel: Port to draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
4aefc82496
label: Port to draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
2e75cecd49
scale: Port to draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
e605272436
range: Port to draw vfunc
2010-09-26 15:11:36 +02:00
Benjamin Otte
745f110814
range: Make drawing use a single cairo context
2010-09-26 15:11:36 +02:00
Benjamin Otte
1d5796c95b
arrow: Port to draw vfunc
2010-09-26 15:11:35 +02:00
Benjamin Otte
9233a08991
calendar: Port to draw vfunc
2010-09-26 15:11:35 +02:00
Benjamin Otte
725749cd14
calendar: Fix drawing order for windows
2010-09-26 15:11:35 +02:00
Benjamin Otte
02572cdf7e
calendar: Create one cairo_t per expose event and pass it around
2010-09-26 15:11:35 +02:00
Benjamin Otte
ed996bcd68
cellview: Port to draw vfunc
2010-09-26 15:11:35 +02:00
Benjamin Otte
0a6b7e5759
spinner: Port to draw vfunc
2010-09-26 15:11:35 +02:00
Benjamin Otte
7121ec2880
image: Port to draw vfunc
2010-09-26 15:11:35 +02:00
Benjamin Otte
c76221426a
image: Always render the whole image
...
Otherwise effects like blur etc will have funny seams on repaints.
Oh, and also, the draw vfunc doesn't have an equivalent to event->area
;)
2010-09-26 15:11:35 +02:00
Benjamin Otte
5228913f68
spinbutton: Port to draw vfunc
2010-09-26 15:11:35 +02:00
Benjamin Otte
d13a2ad66a
entry: Remove gtk_entry_is_drawable() checks when painting
2010-09-26 15:11:35 +02:00
Benjamin Otte
c412c1c752
entry: Port to draw signal
2010-09-26 15:11:35 +02:00
Benjamin Otte
696989d499
entry: Split else ifs into separate if statements
...
Preparation for the draw vfunc
2010-09-26 15:11:35 +02:00
Benjamin Otte
ec4be3619f
entry: Add bug reference to workaround
2010-09-26 15:11:35 +02:00
Benjamin Otte
867ab99b1a
API: Add gtk_cairo_should_draw_window()
...
See the function documentation for its purpose and the next commit(s)
for examples on how to use it.
2010-09-26 15:11:35 +02:00
Benjamin Otte
04e58c192e
ruler: Port to draw signal
2010-09-26 15:11:35 +02:00
Benjamin Otte
ee8788f766
API: ruler: Change draw_pos vfunc to take a cr, width and height
...
Also refactor code to use it
2010-09-26 15:11:35 +02:00
Benjamin Otte
f5a10b05b5
API: ruler: Remove private ruler draw functions from header
2010-09-26 15:11:34 +02:00
Benjamin Otte
892593eff4
ruler: Change the way the ruler handles exposes
...
1) Don't directly draw in motion-notify, instead call
gtk_widget_queue_draw()
2) Don't draw ticks in expose events anymore, only when they were
changed
2010-09-26 15:11:34 +02:00
Benjamin Otte
c68029b778
API: ruler: Change draw_ticks vfunc
...
We now pass in a cairo_t of the backbuffer and the width and height of
the widget/backbuffer, so the vfunc has a place to draw to.
2010-09-26 15:11:34 +02:00
Benjamin Otte
3bd8319a08
ruler: Don't create two cairo_t's
2010-09-26 15:11:34 +02:00
Benjamin Otte
84671438b0
separator: Convert to draw signal
2010-09-26 15:11:34 +02:00
Benjamin Otte
812d9b9948
hsv: Convert to draw signal
2010-09-26 15:11:34 +02:00
Benjamin Otte
5ea1d78857
progressbar: Port to new draw signal
2010-09-26 15:11:34 +02:00
Benjamin Otte
7108586b16
widget: Add draw signal
...
For now, the draw signal is emitted by default from the expose event, so
widgets can chose to either implement the expose event or the draw
function.
This is for the transitional period from expose event to draw signal.
Note that for now subclasses can only implement the draw function when
none of their parents implemented the expose event.
2010-09-26 15:11:34 +02:00
Benjamin Otte
9507670db4
API: Add API to query width and height when rendering
...
The functions are gtk_widget_get_allocated_width() and
gtk_widget_get_allocated_height().
They are currently identical to using width/height of
gtk_widget_get_allocation(), but are introduced for ease of use (no need
to use a custom struct) and to free people from having to think about
allocation.x and allocation.y (which is where the origin of the cairo
context in GtkWidget::draw is located).
2010-09-26 15:11:34 +02:00
Kristian Rietveld
03cf19e8e2
Create cairo context after running validate_visible_area()
...
validate_visible_area() can change the vertical adjustment and thus
trigger window moves/scrolls. This seems to change the surface for
which gtk_tree_view_bin_expose() just created a cairo context. Creating
the cairo context after the call to validate_visible_area() fixes
such crashes.
2010-09-26 15:11:34 +02:00
Benjamin Otte
e624656c20
API: Remove GdkColormap
2010-09-26 15:11:34 +02:00
Benjamin Otte
2ee8fdb79b
gtk: gdk_drawable_get_display() => gdk_window_get_display()
2010-09-26 15:11:33 +02:00
Benjamin Otte
9f47be2216
gtk: gdk_drawable_get_screen/visual => gdk_window_get_screen/visual
2010-09-26 15:11:33 +02:00
Benjamin Otte
e316157671
API: gdk_pixbuf_get_from_drawable() => gdk_pixbuf_get_from_window()
...
The Colormap argument needed to be removed, so the renaming is just a
side effect.
2010-09-26 15:11:32 +02:00
Benjamin Otte
a9f198082a
dnd: Remove unused colormap code
2010-09-26 15:11:32 +02:00
Benjamin Otte
3607a4c082
API: Remove setters and getters for default colormaps
...
This removes:
gtk_widget_set_default_colormap()
gtk_widget_get_default_colormap()
gtk_widget_get_default_visual()
Colormaps are gone, and the default visual is the system visual of the
default screen.
2010-09-26 15:11:32 +02:00
Benjamin Otte
c51e8bd9e5
API: Remove colormap setting and getting from GtkWidget
...
gtk_widget_get_colormap() and gtk_widget_set_colormap() are gone. They
are replaced by visuals.
2010-09-26 15:11:32 +02:00
Benjamin Otte
4701bdb2a8
style: Move from colormaps to visuals
2010-09-26 15:11:32 +02:00
Benjamin Otte
c64946c52d
trayicon: Use XClearArea
...
gdk_window_clear_area() isn't smart enough to clear to a parent pixmap
that is part of a window that GDK doesn't manage.
2010-09-26 15:11:32 +02:00
Benjamin Otte
4515f0803b
trayicon: Change to use gtk_window_set_visual()
...
One less user of colormaps, and the code is cleaner, too!
2010-09-26 15:11:32 +02:00
Benjamin Otte
59b227e123
window: Keep track of own visual
...
Add gtk_window_set_visual() and a "visual" property. This allows
changing the window visual to the rgba one and other awesome things
(like implementing the trayicon spec).
2010-09-26 15:11:32 +02:00
Benjamin Otte
913f3fcc9f
gtk: Change gtk_widget_get_visual()
...
We now return the visual of the topmost widget in widget's stack that
has a window. If no such widget exists, but a GtkWindow is a parent, we
return its visual (note: GtkWindow Will gain support for setting visuals
soon). If a window doesn't exist, we return the system visual of the
default screen.
This change has multiple reasons:
- Colormaps are gone
Now visuals are the most important resource for creating GDK windows.
- Allow widgets to change visuals for themselves and their children
By walking the hierarchy, we ensure that child windows have the same
visual as their parents by default. But widgets can still select a
different visual in their realize handler when creating the GDK
window.
- Have a replacement for gtk_widget_set_colormap()
That function is going to die with colormaps, so a replacement was
needed. That replacement is going to be gdk_window_set_visual().
- Make a future transition to no-window GTK easy
Should we ever attempt a change to make all GTK widgets no-window, a
gtk_widget_set_visual() would be silly, as only widgets with windows
can have their own visuals. So only toplevels will gain the ability to
change it.
2010-09-26 15:11:31 +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
e06d04032b
spinner: We're a no-window widget, so setting a colormap does nothing
2010-09-26 15:11:31 +02:00
Benjamin Otte
ce7379a8bd
style: Remove depth member from GtkStyle
2010-09-26 15:11:31 +02:00
Benjamin Otte
b09019560b
style: Remove depth checks in render functions
...
There's no need for them anymore now that we render with Cairo.
2010-09-26 15:11:31 +02:00
Benjamin Otte
b479ff9cb5
API: Remove gtk_widget_push_colormap()
...
And of course, gtk_widget_pop_colormap() is gone, too.
No replacement is necessary, the function is basically unused.
2010-09-26 15:11:31 +02:00
Benjamin Otte
4dd215f82d
tests: Remove GdkPixmap from test
...
It's not used anymore. (Was it ever?)
2010-09-26 15:11:30 +02:00
Benjamin Otte
b7f2f9a678
gtk: Remove special code for detecting pixmaps as event targets
2010-09-26 15:11:30 +02:00
Benjamin Otte
6607f2b794
API: Rename gdk_set_source_pixmap() to gdk_set_source_window()
...
That's what it's used for now.
2010-09-26 15:11:30 +02:00
Benjamin Otte
332652f702
API: Change offscreen windows to use a cairo_surface_t
...
This requires changes to all the offscreen surface getters that used to
return a GdkPixmap before.
2010-09-26 15:11:29 +02:00
Benjamin Otte
804fd4b15a
dnd: Replace last pixmap usage with cairo surfaces.
2010-09-26 15:11:11 +02:00
Benjamin Otte
b370cb0d4c
API: image: Remove ability to set image from a pixmap
2010-09-26 15:11:11 +02:00
Benjamin Otte
3ba78fed2a
API: Remove the ability to set the dnd icon from a pixmap
2010-09-26 15:11:11 +02:00
Benjamin Otte
ca8a835874
API: Remove gtk_widget_get_snapshot()
...
It will be replaced with gtk_widget_draw().
2010-09-26 15:11:11 +02:00
Benjamin Otte
8ac0e98f98
ruler: Make the backing store use a surface
2010-09-26 15:04:02 +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
db47dd6197
API: make gtk_tree_view_create_row_drag_icon() return a cairo_surface_t
...
GdkPixmap is going to die!
2010-09-26 15:04:02 +02:00
Benjamin Otte
f085bc67cd
treeview: Convert GtkTreeViewColumn rendering to Cairo
2010-09-26 15:03:01 +02:00
Benjamin Otte
b259dd9aba
iconview: Port to Cairo rendering
2010-09-26 15:03:01 +02:00
Benjamin Otte
e9dd3dc46a
cellview: Port to Cairo rendering
2010-09-26 15:03:01 +02:00
Benjamin Otte
42947e3cdc
API: Add gtk_cell_renderer_render_cairo()
...
It's like gtk_cell_renderer_render(), just cooler.
2010-09-26 15:03:01 +02:00
Benjamin Otte
e31e77eeb8
API: Change cellrenderer->render vfunc to take a cairo_t
...
Also constify the rectangle arguments. They were const anyway.
2010-09-26 15:03:01 +02:00
Benjamin Otte
4138e86ad4
testview: Convert _gtk_text_util_create_rich_drag_icon() to use surfaces
2010-09-26 15:03:01 +02:00
Benjamin Otte
331999d84d
textview: API: change gtk_text_layout_draw() to take a cairo_t
...
This simplifies the API a lot and allows more magic to happen later.
2010-09-26 15:03:01 +02:00
Benjamin Otte
ac48f2330d
API: Add gtk_cairo_draw_insertion_cursor()
...
For now just add it instead of replacing the current function. In the
end, this one should probably be renamed to
gtk_draw_insertion_cursor() and the current
gtk_draw_insertion_cursor() should die.
2010-09-26 15:03:00 +02:00
Benjamin Otte
3d340d7449
text: Make _gtk_text_util_create_drag_icon() return a surface
...
And change its callers to handle it that way.
2010-09-26 15:03:00 +02:00
Benjamin Otte
3dfb47bc3c
API: Add gtk_drag_set_icon_surface()
...
The function is supposed to replace gtk_drag_set_icon_pixmap().
2010-09-26 15:03:00 +02:00
Benjamin Otte
0d9d599b50
menu: set tearoff background using new background API
2010-09-26 15:03:00 +02:00
Benjamin Otte
134683c9be
Use gdk_window_set_background_pattern() to set parent-relative bakground
2010-09-26 15:03:00 +02:00
Benjamin Otte
20d1030823
iconview: No need to set background
2010-09-26 15:03:00 +02:00
Benjamin Otte
84c77c0be3
style: Rewrite background handling to use cairo_pattern_t
2010-09-26 15:03:00 +02:00
Benjamin Otte
603a840de9
trayicon: Use new gdk_window_set_background_pattern() API
2010-09-26 15:03:00 +02:00
Benjamin Otte
5e4aaba482
gtk: Remove calls that try to set GDK_NO_BG on their windows
...
These calls aren't necessary anymore.
2010-09-26 15:03:00 +02:00
Benjamin Otte
806a7239ae
widget: shape_combine_mask => shape_cobine_region
...
Replace gtk_widget_shape_combine_region() with
gtk_widget_shape_combine_mask() and
gtk_widget_input_shape_combine_region() with
gtk_widget_input_shape_combine_mask().
As GdkBitmap is going away, and the region equivalents already exist,
this seems like pretty much the default step to take.
Includes code to fix up the users.
2010-09-26 15:02:59 +02:00
Benjamin Otte
8b4d50dd1d
treeview: Port to gdk_window_shape_combine_region()
...
gdk_window_shape_combine_mask() is going away. It's using a GdkPixmap
and falls back to gdk_window_shape_combine_region() anyway.
2010-09-26 15:02:59 +02:00
Benjamin Otte
0178bff5c0
colorsel: Use gdk_cursor_new_from_pixbuf() to create the cursor
...
gdk_cursor_new_from_pixmap() is about to die.
2010-09-26 15:02:59 +02:00