Closed Bug 367433 Opened 18 years ago Closed 18 years ago

Change mac printing to use print manager instead of cups

Categories

(Core :: Graphics, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: pavlov, Assigned: pavlov)

References

Details

Attachments

(1 file, 7 obsolete files)

This should fix a bunch of the mac printing bugs
Attached patch fix (obsolete) — Splinter Review
first pass. this needs some better comments about the weird ordering as well as testing on windows and linux
Attached patch fix with 10.3 support (obsolete) — Splinter Review
Adds printing support for 10.3, based on stuart's patch.
Attachment #251986 - Attachment is obsolete: true
Uses the runtime version check methods from 367548
Depends on: 367548
When this lands I assume products can remove the -lcups we added when the last round of print stuff went in?
yeah this will fully remove the cups dependency.  I'm hoping to finish this up soon (just needs more comments and some build fixes on windows and linux)
Comment on attachment 252126 [details] [diff] [review]
fix with 10.3 support

-#ifndef nsDeviceContextSpecX_h_
-#define nsDeviceContextSpecX_h_
+#ifndef nsDeviceContextSpecX_h___
+#define nsDeviceContextSpecX_h___
...
-#endif // nsDeviceContextSpecX_h_
+#endif

Why change that stuff? That is the standard format for every header file in cocoa widgets, exactly.
(In reply to comment #6)
> (From update of attachment 252126 [details] [diff] [review])
> -#ifndef nsDeviceContextSpecX_h_
> -#define nsDeviceContextSpecX_h_
> +#ifndef nsDeviceContextSpecX_h___
> +#define nsDeviceContextSpecX_h___
> ...
> -#endif // nsDeviceContextSpecX_h_
> +#endif
> 
> Why change that stuff? That is the standard format for every header file in
> cocoa widgets, exactly.
> 

just there because we had to revert your changes to that file to get the previous patch to apply...  can be changed before I check in.
Reverted these include guards (IIRC they got changed because stuart was working on an earlier version of the tree).
Attachment #252126 - Attachment is obsolete: true
Blocks: 332915
Attached patch 10.3 compilation support (obsolete) — Splinter Review
this should allow us to compile on 10.3. ardissone, can you test?
Attachment #252569 - Attachment is obsolete: true
this should solve the size problem and should fix the windows and linux pieces. testing that now.
Attachment #252708 - Attachment is obsolete: true
Blocks: 362135
Blocks: 362136
Blocks: 362137
Blocks: 362187
Blocks: 362833
Patch on top of stuart's patch. Generated with interdiff --no-revert-omitted between attachment 252716 [details] [diff] [review] and my changes. It should apply to a tree that has had stuart's patch applied to it.

It dynamically loads the printing symbols to use on Tiger -- it should allow us to compile against the 10.3.9 sdk. Testing would be appreciated, as cross compiling to PPC (which is necessary to test 10.3.9) is currently broken (in our build system).
(In reply to comment #11)

> It dynamically loads the printing symbols to use on Tiger -- it should allow us
> to compile against the 10.3.9 sdk. Testing would be appreciated, as cross
> compiling to PPC (which is necessary to test 10.3.9) is currently broken (in
> our build system).
>

I could build Camino on PPC 10.4 with GCC 3.3 + 10.3.9 SDK (ppc build only)
(and I could print to PDF more or less correctly)
I'll spin a Minefield build with GCC 4.01 + 10.3.9 SDK later.

Attached patch hopefully final patch (obsolete) — Splinter Review
i've tested this on windows and mac.. testing on linux now
Attachment #252716 - Attachment is obsolete: true
Attachment #252871 - Attachment is obsolete: true
Attached patch final patch.Splinter Review
this has been tested/works on all 3 platforms.
Attachment #252986 - Attachment is obsolete: true
Attachment #252991 - Flags: review?(vladimir)
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Depends on: 368400
So with this change, creating a surface with the same width/height as a given one is pretty painful, because gfxSize has float width/height, while gfxPlatform::CreateOffscreenSurface takes integer sizes.  Passing a float in to an int arg leads to compiler warnings; casting to get rid of those is a pain.

Could we perhaps restore the old Width()/Height() or have a version returning nsIntSize or something?
CreateOffscreenSurface should be changed to take floats.  We want to use structs for everything in thebes and we can't use nsIntSize because it lives in old gfx and we don't want that dependency.  We could have a gfxIntSize or somesuch (or do templates as I've suggested in the past) but I would rather avoid that for now and just use doubles.
Sure, all I care about is that there not be an impedance mismatch between the APIs.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: