Sven Neumann
4c57e3f19e
app: port GimpVectors drawing to cairo
...
This is just a rough proof of concept. More changes are about
to follow.
2010-09-16 21:13:08 +02:00
Michael Natterer
f0c40d3717
app: port GimpDisplayShell image drawing to cairo
2010-08-27 23:15:25 +02:00
Michael Natterer
18d3882c5c
app: port GimpDisplayShell pen drawing to cairo
2010-08-23 21:59:27 +02:00
Michael Natterer
529ce40a5d
app: port GimpDisplayShell grid drawing to cairo
2010-08-11 13:16:55 +02:00
Michael Natterer
5df1d477b7
app: free shell->zoom_focus_pointer_queue in destroy()
2010-06-22 23:06:35 +02:00
Martin Nordholts
7e3898da09
app/tests: Add keyboard zoom focus regression test
...
Add keyboard zoom focus regression test. We also need a new display
shell utility function
gimp_display_shell_push_zoom_focus_pointer_pos() for that.
2010-06-18 20:57:59 +02:00
Michael Natterer
84cf53d908
app: fix artifacts caused by delayed tool drawing
...
and as a "side effect", speed up rendering the image significantly:
- disable double buffering on the canvas widget.
- implement background clearing ourselves (needed after turning off
double buffering).
- remove any fiddling with clipping regions on the tool drawing GCs
and pull the pause/resume code out of the actual image expose
function.
- if there are overlay widgets on the canvas, implement double
buffering manually to aviod flicker, but do it in a way that keeps
pausing/resuming the active tool *outside* the double buffered
drawing.
2010-05-02 12:12:48 +02:00
Michael Natterer
84d33e4316
app: make image-coords overlay widgets work fine at any zoom factor
...
Add anchor and spacing parameters to the shell overlay API, so
overlays can be positioned on each side of a point in image space,
with configurable spacing in display space.
2010-02-28 14:48:47 +01:00
Michael Natterer
ff01c2d77e
app: add API to move an existing image-coords overlay around
2010-02-26 01:27:04 +01:00
Michael Natterer
9b75184442
app: add API to add overlays in image coordinates
...
and update their positions when the shell scrolls and zooms.
2010-02-20 15:15:53 +01:00
Martin Nordholts
ed2d178da3
app: Get rid of config -> display module dependency
...
In order to make a clear separation between the core modules and the
UI modules, move the necessary enums from display-enums.h and
widgets-enums.h to config-enums.h and the files
gimpdisplayoptions.[ch] from the display to the config module. This
removes the config -> display dependency.
This change has three main benefits
* It lets us remove includes of display files from the config module
* We don't have to link gimp-console and test-config with a subset of
object files from the display module
* It is reflected in devel-docs/gimp-module-dependencies.svg that the
application is made up of core modules and UI modules and that no
core module depends on any UI module
2010-02-01 21:56:48 +01:00
Martin Nordholts
8ba9700ddb
Bug 597368 - Widget spacing around canvas steals working space
...
Remove spacing between the canvas and the surrounding widgets so that
that space can be used for the actual canvas itself instead.
2010-01-30 08:59:28 +01:00
Michael Natterer
7175f3e883
Some more changes to build with GSEAL_ENABLE
...
- use more GTK+ accessors instead of struct members
- remove quite some #undef GSEAL_ENABLE from completely ported files
2010-01-15 15:35:03 +01:00
Michael Natterer
deed1636f9
Remove all code from gimp_display_shell_new()
...
Move the entire widget construction code to constructor().
2009-11-01 18:18:17 +01:00
Michael Natterer
439994d994
Clean up gimp_display_shell_init()
...
Only initialize members that don't default to zero. It was simply too
much and soon widgets will be constructed in init().
2009-11-01 14:51:08 +01:00
Michael Natterer
8780342dcb
Set a 10px border on the canvas so overlays have some spacing
2009-10-18 23:03:04 +02:00
Michael Natterer
6608d66cde
Build with GSEAL_ENABLE and #undef it where accessors are missing
2009-10-17 19:51:33 +02:00
Martin Nordholts
c83788377a
app: Remove unused includes from gimpdisplayshell.c
2009-10-09 23:04:29 +02:00
Michael Natterer
067cfe9ff0
Move a call to gimp_display_shell_connect() around
...
from gimp_display_shell_reconnect() to gimp_display_set_image()
because it makes unsetting and setting an image in
gimp_display_set_image() more symmetric.
2009-10-07 20:11:48 +02:00
Michael Natterer
c5b856f16f
Use gimp_display_get_image() instead of display->image
2009-10-06 19:20:44 +02:00
Michael Natterer
d0a614093e
Default to GIMP_NAME for the "title" property
2009-10-06 10:56:10 +02:00
Michael Natterer
d1ded0617f
More gimp_display_get_shell() instead of display->shell
2009-10-05 19:58:03 +02:00
Michael Natterer
94dcbe0e2e
Add new function gimp_display_shell_present()
...
Not only presents the shell's toplevel, but also makes it the active
shell in the image window.
2009-10-04 19:24:55 +02:00
Michael Natterer
dee0afed79
Move the statusbar back to GimpDisplayShell
...
Keeping it in GimpImageWindow was a bad idea because
- it wasted space
- it produced evil code because
- it conceptually didn't belong there
2009-10-04 15:33:03 +02:00
Michael Natterer
750c11f001
Move the display render buf size #defines to gimpdisplayshell-render.h
2009-10-03 00:15:04 +02:00
Michael Natterer
f6fd3aed51
Move GimpDisplayShell's expose functions to separate files
2009-10-02 23:55:26 +02:00
Michael Natterer
6c46d1ec73
Fix some comment typos and formatting
2009-10-02 23:43:58 +02:00
Michael Natterer
35588efaa1
Remove "gimp-" prefix from the shell's "icon" and "title" properties
...
The prefix was needed because GtkWindow also has "icon" and "title"
properties.
2009-09-29 22:20:12 +02:00
Michael Natterer
1c430a2b19
Move all GimpImageWindow members to a private struct
...
Add accessor functions for publically available members and visibility
functions for menubar and statusbar.
2009-09-29 21:44:43 +02:00
Michael Natterer
59274856ad
Derive GimpDisplayShell from GtkVBox instead of GimpImageWindow
...
...and pack the widget into a separately created GimpImageWindow.
2009-09-29 20:56:14 +02:00
Michael Natterer
253b8e2cbe
Use gimp_display_shell_get_window() instead of gtk_widget_get_toplevel()
...
The new function does the right thing, unlike get_toplevel() which
returns the shell itself if it is not in a window. Check the return
value of get_window() for being non-NULL.
2009-09-29 20:32:26 +02:00
Michael Natterer
97987aff6e
Add gimp_display_shell_get_window() which returns an image window or NULL
2009-09-28 23:53:05 +02:00
Michael Natterer
35739c743c
Change GimpImageWindow API to speak in shells, not displays
...
A widget container should keep around child widgets, not whatever
objects that just have widgets.
2009-09-28 22:55:55 +02:00
Michael Natterer
45f4a99339
Don't set any options in gimp_display_shell_new()
...
All options are properly set when the shell is set active in its image
window.
2009-09-28 22:55:54 +02:00
Michael Natterer
16038023a5
Remove some dead code and fix some comments
2009-09-28 22:55:53 +02:00
Michael Natterer
a8876834e8
Move the remaining menubar signal connections from the shell to the window
2009-09-28 22:55:53 +02:00
Michael Natterer
5b5e4e039a
Add gimp_image_window_add_display() and use it
...
This API is most likely not final, but enables adding the vbox of
shell widgets to the image window's vbox *after* the shell constructor
returns. Seems to work nicely :-)
2009-09-28 22:55:51 +02:00
Michael Natterer
bcef4f275d
gimp_display_shell_fill_idle() present the toplevel not the shell
...
Not sure if this one should go to the image window...
2009-09-28 22:55:51 +02:00
Michael Natterer
32783d7228
Move shrink_wrap() from the display to the window
...
Also fix all callers. This clearly needs more cleanup.
2009-09-28 22:55:50 +02:00
Michael Natterer
abc5e270b3
Go via the toplevel to update the image window's ui manager
2009-09-28 22:55:49 +02:00
Michael Natterer
7f064f694e
Get rid of the shell's window-state-event handler
...
Move the last remaining function to the window. It doesn't actually
belong there, but it's better than the handler in the wrong place.
Added FIXME as reminder.
2009-09-28 22:55:49 +02:00
Michael Natterer
4f60240a04
Move updating the "view-fullscreen" actions to the proper place
...
Update the actions in gimp_display_shell_appearance_update() and remove
all action code from the window-state-event handlers.
2009-09-28 22:55:49 +02:00
Michael Natterer
8b5b36751d
Move updating the shell's appearance to the right window state event handler
...
The shell's handler is going to go away, so move this call to
the image window.
2009-09-28 22:55:48 +02:00
Michael Natterer
d015a704b3
Move GtkWidget::configure_event() impl from the shell to the window
...
Still has a FIXME for later, but is in the right place now.
2009-09-28 22:55:48 +02:00
Michael Natterer
c475b1b3be
Update widget packing ASCII art to not include image window widgets
2009-09-28 22:55:48 +02:00
Michael Natterer
a5945740e0
Move GtkWidget::delete_event() impl from the shell to the window
...
Still has a FIXME but is in the right place now at least
2009-09-28 22:55:47 +02:00
Michael Natterer
b11c3355cb
Implement GObject::constructor()
...
For now, simply assert that all required construct properties are set.
2009-09-28 22:55:47 +02:00
Michael Natterer
1ae5632753
Turn "popup-manager" into a construct-only property and pass it accordingly
2009-09-28 22:55:47 +02:00
Michael Natterer
7b62cb3b00
Turn "display" into a construct-only property and pass it accordingly
2009-09-28 22:55:47 +02:00
Michael Natterer
d2f43f1604
Finally fully enable the image window's active_display mechanism
...
Don't set the window's active_display manually in gimp_display_shell_new(),
setting it properly after construction in gimp_display_new() works fine
now. Enable all disabled code in gimp_image_window_set_active_display().
2009-09-28 22:55:47 +02:00