From 0ca6b749f48605c923441ef708224cdd60af095e Mon Sep 17 00:00:00 2001 From: Karsten Heimrich Date: Sat, 26 Jul 2008 22:36:01 +0000 Subject: [PATCH] * merge parts of libprint and libprintutils to make both indepentend * adjust all drivers to take that into account * fix UpdateText() signature in JSDSlider to avoid warning git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26648 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../print/libprint}/InterfaceUtils.h | 17 +- headers/libs/print/libprint/JSDSlider.h | 14 +- .../print/libprint}/PrintJobReader.h | 0 .../print/libprint/PrintUtils.h} | 30 +-- headers/private/print/BeUtils.h | 5 - headers/private/print/MarginView.h | 222 ------------------ .../print/drivers/canon_lips/lips3/Jamfile | 6 +- .../print/drivers/canon_lips/lips4/Jamfile | 6 +- src/add-ons/print/drivers/pcl5/Jamfile | 6 +- src/add-ons/print/drivers/pcl6/Jamfile | 6 +- .../pdf/source/AdvancedSettingsWindow.cpp | 2 +- src/add-ons/print/drivers/pdf/source/Cache.h | 2 +- .../print/drivers/pdf/source/DocInfoWindow.h | 2 +- src/add-ons/print/drivers/pdf/source/Fonts.h | 2 +- .../print/drivers/pdf/source/FontsWindow.h | 2 +- src/add-ons/print/drivers/pdf/source/Image.h | 2 +- .../print/drivers/pdf/source/ImageCache.h | 2 +- src/add-ons/print/drivers/pdf/source/Jamfile | 4 +- .../drivers/pdf/source/JobSetupWindow.cpp | 2 +- .../print/drivers/pdf/source/JobSetupWindow.h | 2 +- src/add-ons/print/drivers/pdf/source/Link.h | 2 +- .../print/drivers/pdf/source/PDFWriter.h | 2 +- .../drivers/pdf/source/PageSetupWindow.cpp | 2 +- .../print/drivers/pdf/source/PrinterDriver.h | 2 + .../drivers/pdf/source/PrinterSettings.cpp | 2 +- .../drivers/pdf/source/PrinterSetupWindow.h | 2 +- src/add-ons/print/drivers/pdf/source/Report.h | 2 +- .../print/drivers/pdf/source/StatusWindow.h | 2 +- .../print/drivers/pdf/source/XReferences.h | 2 +- src/add-ons/print/drivers/postscript/Jamfile | 6 +- src/add-ons/print/drivers/preview/Jamfile | 7 +- .../print/drivers/preview/JobSetupWindow.h | 2 +- .../print/drivers/preview/PageSetupWindow.cpp | 3 +- .../print/drivers/preview/PageSetupWindow.h | 2 +- src/add-ons/print/drivers/preview/Preview.cpp | 4 +- src/kits/print/BeUtils.cpp | 53 ----- src/kits/print/Jamfile | 4 - .../print/libprint}/InterfaceUtils.cpp | 23 +- src/libs/print/libprint/JSDSlider.cpp | 56 ++--- src/libs/print/libprint/Jamfile | 5 +- .../print/libprint}/MarginView.cpp | 0 src/libs/print/libprint/PageSetupDlg.cpp | 4 +- src/libs/print/libprint/Preview.cpp | 4 +- .../print/libprint}/PrintJobReader.cpp | 0 .../print/libprint/PrintUtils.cpp} | 87 +++++-- src/libs/print/libprint/PrinterDriver.cpp | 4 +- src/servers/print/ConfigWindow.cpp | 2 +- src/servers/print/Jamfile | 2 + 48 files changed, 198 insertions(+), 422 deletions(-) rename headers/{private/print => libs/print/libprint}/InterfaceUtils.h (94%) rename headers/{private/print => libs/print/libprint}/PrintJobReader.h (100%) rename headers/{private/print/Utils.h => libs/print/libprint/PrintUtils.h} (91%) delete mode 100644 headers/private/print/MarginView.h rename src/{kits/print => libs/print/libprint}/InterfaceUtils.cpp (94%) rename src/{kits/print => libs/print/libprint}/MarginView.cpp (100%) rename src/{kits/print => libs/print/libprint}/PrintJobReader.cpp (100%) rename src/{kits/print/Utils.cpp => libs/print/libprint/PrintUtils.cpp} (61%) diff --git a/headers/private/print/InterfaceUtils.h b/headers/libs/print/libprint/InterfaceUtils.h similarity index 94% rename from headers/private/print/InterfaceUtils.h rename to headers/libs/print/libprint/InterfaceUtils.h index 84373da8e4..70ef2d282b 100644 --- a/headers/private/print/InterfaceUtils.h +++ b/headers/libs/print/libprint/InterfaceUtils.h @@ -31,8 +31,21 @@ THE SOFTWARE. #define _INTERFACE_UTILS_H #include +#include + + +class EscapeMessageFilter : public BMessageFilter +{ +private: + BWindow *fWindow; + int32 fWhat; + +public: + EscapeMessageFilter(BWindow *window, int32 what); + filter_result Filter(BMessage *msg, BHandler **target); +}; + -// -------------------------------------------------- class HWindow : public BWindow { protected: @@ -49,7 +62,7 @@ public: virtual const char* AboutText() const { return NULL; } }; -// -------------------------------------------------- + class BlockingWindow : public HWindow { public: diff --git a/headers/libs/print/libprint/JSDSlider.h b/headers/libs/print/libprint/JSDSlider.h index 02e1be6651..c69ab49c0e 100644 --- a/headers/libs/print/libprint/JSDSlider.h +++ b/headers/libs/print/libprint/JSDSlider.h @@ -17,15 +17,15 @@ class JSDSlider : public BSlider { public: - JSDSlider(BRect frame, const char* name, const char *label, BMessage *msg, - int32 min, int32 max, thumb_style t); + JSDSlider(BRect frame, const char* name, const char *label, + BMessage *msg, int32 min, int32 max, thumb_style t); + + virtual ~JSDSlider(); + + virtual const char* UpdateText() const; - ~JSDSlider(); - - char* UpdateText() const; - private: - BString* fResult; + mutable BString fResult; }; #endif diff --git a/headers/private/print/PrintJobReader.h b/headers/libs/print/libprint/PrintJobReader.h similarity index 100% rename from headers/private/print/PrintJobReader.h rename to headers/libs/print/libprint/PrintJobReader.h diff --git a/headers/private/print/Utils.h b/headers/libs/print/libprint/PrintUtils.h similarity index 91% rename from headers/private/print/Utils.h rename to headers/libs/print/libprint/PrintUtils.h index 632193cb4a..674290ffad 100644 --- a/headers/private/print/Utils.h +++ b/headers/libs/print/libprint/PrintUtils.h @@ -30,8 +30,8 @@ THE SOFTWARE. */ -#ifndef _UTILS_H -#define _UTILS_H +#ifndef _PRINT_UTILS_H_ +#define _PRINT_UTILS_H_ #include @@ -45,29 +45,21 @@ class BMessage; class BWindow; +#define BEGINS_CHAR(byte) ((byte & 0xc0) != 0x80) + + +BRect ScaleRect(const BRect& rect, float scale); + + // set or replace a value in a BMessage void SetBool(BMessage* msg, const char* name, bool value); void SetFloat(BMessage* msg, const char* name, float value); void SetInt32(BMessage* msg, const char* name, int32 value); void SetString(BMessage* msg, const char* name, const char* value); - void SetRect(BMessage* msg, const char* name, const BRect& rect); void SetString(BMessage* msg, const char* name, const BString& value); - - -class EscapeMessageFilter : public BMessageFilter -{ -private: - BWindow *fWindow; - int32 fWhat; - -public: - EscapeMessageFilter(BWindow *window, int32 what); - filter_result Filter(BMessage *msg, BHandler **target); -}; - - -#define BEGINS_CHAR(byte) ((byte & 0xc0) != 0x80) +void AddFields(BMessage* to, const BMessage* from, const char* excludeList[] = NULL, + const char* includeList[] = NULL, bool overwrite = true); template @@ -139,4 +131,4 @@ void TList::SortItems(int (*comp)(const T**, const T**)) { fList.SortItems(sort); } -#endif +#endif // _PRINT_UTILS_H_ diff --git a/headers/private/print/BeUtils.h b/headers/private/print/BeUtils.h index 3580848356..3e1f25be79 100644 --- a/headers/private/print/BeUtils.h +++ b/headers/private/print/BeUtils.h @@ -90,8 +90,6 @@ public: // mimetype from sender bool MimeTypeForSender(BMessage* sender, BString& mime); -// adds fields to message or replaces existing fields -void AddFields(BMessage* to, const BMessage* from, const char* excludeList[] = NULL, const char* includeList[] = NULL, bool overwrite = true); // load bitmap from application resources BBitmap* LoadBitmap(const char* name, uint32 type_code = B_TRANSLATOR_BITMAP); // convert bitmap to picture; view must be attached to a window! @@ -99,7 +97,4 @@ BBitmap* LoadBitmap(const char* name, uint32 type_code = B_TRANSLATOR_BITMAP); BPicture *BitmapToPicture(BView* view, BBitmap *bitmap); BPicture *BitmapToGrayedPicture(BView* view, BBitmap *bitmap); -// scalar multiplication -BRect ScaleRect(BRect rect, float scale); - #endif diff --git a/headers/private/print/MarginView.h b/headers/private/print/MarginView.h deleted file mode 100644 index 5d784cbee2..0000000000 --- a/headers/private/print/MarginView.h +++ /dev/null @@ -1,222 +0,0 @@ -/* - -MarginView.h - -Copyright (c) 2002 OpenBeOS. - -Authors: - Philippe Houdoin - Simon Gauvin - Michael Pfeiffer - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - Documentation: - - The MarginView is designed to be a self contained component that manages - the display of a BBox control that shows a graphic of a page and its' - margings. The component also includes text fields that are used to mofify - the margin values and a popup to change the units used for the margins. - - There are two interfaces for the MarginView component: - - 1) Set methods: - - page size - - orientation - - Get methods to retrieve: - - margins - - page size - - The method interface is available for the parent Component to call on - the MarginView in response to the Window receiveing messages from - other BControls that it contains, such as a Page Size popup. The - Get methods are used to extract the page size and margins so that - the printer driver may put these values into a BMessage for printing. - - 2) 'Optional' Message interface: - - Set Page Size - - Flip Orientation - - The message interface is available for GUI Controls, BPopupMenu to send - messages to the MarginView if the parent Window is not used to handle - the messages. - - General Use of MarginView component: - - 1) Simply construct a new MarginView object with the margins - you want as defaults and add this view to the parent view - of the dialog. - - MarginView *mv; - mv = new MarginView(viewSizeRect, pageWidth, pageHeight); - parentView->AddChild(mv); - - * you can also set the margins in the constructor, and the units: - - mv = new MarginView(viewSizeRect, pageWidth, pageHeight - marginRect, kUnitPointS); - - ! but remeber to have the marginRect values match the UNITS :-) - - 2) Set Page Size with methods: - - mv-SetPageSize( pageWidth, pageHeight ); - mv->UpdateView(); - - 3) Set Page Size with BMessage: - - BMessage* msg = new BMessage(CHANGE_PAGE_SIZE); - msg->AddFloat("width", pageWidth); - msg->AddFloat("height", pageHeight); - mv->PostMessage(msg); - - 4) Flip Page with methods: - - mv-SetPageSize( pageHeight, pageWidth ); - mv->UpdateView(); - - 5) Flip Page with BMessage: - - BMessage* msg = new BMessage(FLIP_PAGE); - mv->Looper()->PostMessage(msg); - - Note: the MarginView DOES NOT keep track of the orientation. This - should be done by the code for the Page setup dialog. - - 6) Get Page Size - - BPoint pageSize = mv->GetPageSize(); - - 7) Get Margins - - BRect margins = mv->GetMargins(); - - 8) Get Units - - uint32 units = mv->GetUnits(); - - where units is one of: - kUnitInch, 72 points/in - kUnitCM, 28.346 points/cm - kUnitPoint, 1 point/point -*/ - -#ifndef _MARGIN_VIEW_H -#define _MARGIN_VIEW_H - -#include -#include - -class BTextControl; -class MarginManager; - -// Messages that the MarginManager accepts -const uint32 TOP_MARGIN_CHANGED = 'tchg'; -const uint32 RIGHT_MARGIN_CHANGED = 'rchg'; -const uint32 LEFT_MARGIN_CHANGED = 'lchg'; -const uint32 BOTTOM_MARGIN_CHANGED = 'bchg'; -const uint32 MARGIN_CHANGED = 'mchg'; -const uint32 CHANGE_PAGE_SIZE = 'chps'; -const uint32 FLIP_PAGE = 'flip'; -const uint32 MARGIN_UNIT_CHANGED = 'mucg'; - -enum MarginUnit { - kUnitInch = 0, - kUnitCM, - kUnitPoint -}; - -/** - * Class MarginView - */ -class MarginView : public BBox -{ -friend class MarginManager; - -public: - MarginView(BRect rect, int32 pageWidth = 0, - int32 pageHeight = 0, - BRect margins = BRect(1, 1, 1, 1), // 1 inch - MarginUnit unit = kUnitInch); - - virtual ~MarginView(); - - virtual void AttachedToWindow(); - virtual void Draw(BRect rect); - virtual void FrameResized(float width, float height); - virtual void MessageReceived(BMessage *msg); - - // point.x = width, point.y = height - BPoint PageSize() const; - void SetPageSize(float pageWidth, float pageHeight); - - // margin - BRect Margin() const; - - // units - MarginUnit Unit() const; - - // will cause a recalc and redraw - void UpdateView(uint32 msg); - -private: - // all the GUI construction code - void _ConstructGUI(); - - // utility method - void _AllowOnlyNumbers(BTextControl *textControl, - int32 maxNum); - - // performed internally using text fields - void _SetMargin(BRect margin); - - // performed internally using the supplied popup - void _SetMarginUnit(MarginUnit unit); - - // Calculate the view size for the margins - void _CalculateViewSize(uint32 msg); - -private: - BTextControl* fTop; - BTextControl* fBottom; - BTextControl* fLeft; - BTextControl* fRight; - - // rect that holds the margins for the page as a set of point offsets - BRect fMargins; - - // the maximum size of the page view calculated from the view size - float fMaxPageWidth; - float fMaxPageHeight; - - // the actual size of the page in points - float fPageHeight; - float fPageWidth; - - // the units used to calculate the page size - MarginUnit fMarginUnit; - float fUnitValue; - - // the size of the drawing area we have to draw the view in pixels - float fViewHeight; - float fViewWidth; -}; - -#endif // _MARGIN_VIEW_H diff --git a/src/add-ons/print/drivers/canon_lips/lips3/Jamfile b/src/add-ons/print/drivers/canon_lips/lips3/Jamfile index bbd6a4b446..b74e9216a4 100644 --- a/src/add-ons/print/drivers/canon_lips/lips3/Jamfile +++ b/src/add-ons/print/drivers/canon_lips/lips3/Jamfile @@ -11,11 +11,7 @@ Addon Canon\ LIPS3\ Compatible : Lips3.cpp Lips3Cap.cpp Compress3.cpp - : - be - libprint.a - libprintutils.a - $(TARGET_LIBSTDC++) + : be libprint.a $(TARGET_LIBSTDC++) ; Package haiku-printingkit-cvs : diff --git a/src/add-ons/print/drivers/canon_lips/lips4/Jamfile b/src/add-ons/print/drivers/canon_lips/lips4/Jamfile index 850749897d..6ee5d7a067 100644 --- a/src/add-ons/print/drivers/canon_lips/lips4/Jamfile +++ b/src/add-ons/print/drivers/canon_lips/lips4/Jamfile @@ -10,11 +10,7 @@ Addon Canon\ LIPS4\ Compatible : Lips4Entry.cpp Lips4.cpp Lips4Cap.cpp - : - be - libprint.a - libprintutils.a - $(TARGET_LIBSTDC++) + : be libprint.a $(TARGET_LIBSTDC++) ; Package haiku-printingkit-cvs : diff --git a/src/add-ons/print/drivers/pcl5/Jamfile b/src/add-ons/print/drivers/pcl5/Jamfile index f4e29aef50..220e68e400 100644 --- a/src/add-ons/print/drivers/pcl5/Jamfile +++ b/src/add-ons/print/drivers/pcl5/Jamfile @@ -10,11 +10,7 @@ Addon PCL5\ Compatible : PCL5Entry.cpp PCL5.cpp PCL5Cap.cpp - : - be - libprint.a - libprintutils.a - $(TARGET_LIBSTDC++) + : be libprint.a $(TARGET_LIBSTDC++) ; Package haiku-printingkit-cvs : diff --git a/src/add-ons/print/drivers/pcl6/Jamfile b/src/add-ons/print/drivers/pcl6/Jamfile index 91c1d91d8c..f37cad6b60 100644 --- a/src/add-ons/print/drivers/pcl6/Jamfile +++ b/src/add-ons/print/drivers/pcl6/Jamfile @@ -14,11 +14,7 @@ Addon PCL6\ Compatible : PCL6Rasterizer.cpp PCL6Writer.cpp Rasterizer.cpp - : - be - libprint.a - libprintutils.a - $(TARGET_LIBSTDC++) + : be libprint.a $(TARGET_LIBSTDC++) ; Package haiku-printingkit-cvs : diff --git a/src/add-ons/print/drivers/pdf/source/AdvancedSettingsWindow.cpp b/src/add-ons/print/drivers/pdf/source/AdvancedSettingsWindow.cpp index 0ce51f4625..2989f80b3f 100644 --- a/src/add-ons/print/drivers/pdf/source/AdvancedSettingsWindow.cpp +++ b/src/add-ons/print/drivers/pdf/source/AdvancedSettingsWindow.cpp @@ -28,7 +28,7 @@ THE SOFTWARE. */ #include "AdvancedSettingsWindow.h" -#include "Utils.h" +#include "PrintUtils.h" #include diff --git a/src/add-ons/print/drivers/pdf/source/Cache.h b/src/add-ons/print/drivers/pdf/source/Cache.h index 7ec2d26484..28c6660bca 100644 --- a/src/add-ons/print/drivers/pdf/source/Cache.h +++ b/src/add-ons/print/drivers/pdf/source/Cache.h @@ -30,7 +30,7 @@ THE SOFTWARE. #ifndef _CACHE_H #define _CACHE_H -#include "Utils.h" +#include "PrintUtils.h" class CacheItem; diff --git a/src/add-ons/print/drivers/pdf/source/DocInfoWindow.h b/src/add-ons/print/drivers/pdf/source/DocInfoWindow.h index 82db007ce2..e08b84b1ee 100644 --- a/src/add-ons/print/drivers/pdf/source/DocInfoWindow.h +++ b/src/add-ons/print/drivers/pdf/source/DocInfoWindow.h @@ -40,7 +40,7 @@ THE SOFTWARE. #include #include #include "InterfaceUtils.h" -#include "Utils.h" +#include "PrintUtils.h" #define HAVE_FULLVERSION_PDF_LIB 0 diff --git a/src/add-ons/print/drivers/pdf/source/Fonts.h b/src/add-ons/print/drivers/pdf/source/Fonts.h index 4a7feca568..a5cd04680d 100644 --- a/src/add-ons/print/drivers/pdf/source/Fonts.h +++ b/src/add-ons/print/drivers/pdf/source/Fonts.h @@ -35,7 +35,7 @@ THE SOFTWARE. #include #include #include -#include "Utils.h" +#include "PrintUtils.h" enum font_encoding { diff --git a/src/add-ons/print/drivers/pdf/source/FontsWindow.h b/src/add-ons/print/drivers/pdf/source/FontsWindow.h index d4898611e4..9241fb2569 100644 --- a/src/add-ons/print/drivers/pdf/source/FontsWindow.h +++ b/src/add-ons/print/drivers/pdf/source/FontsWindow.h @@ -39,7 +39,7 @@ THE SOFTWARE. #include #include #include -#include "Utils.h" +#include "PrintUtils.h" #include "Fonts.h" #define USE_CLV 0 diff --git a/src/add-ons/print/drivers/pdf/source/Image.h b/src/add-ons/print/drivers/pdf/source/Image.h index 07cf55eb09..aa7a62d3c9 100644 --- a/src/add-ons/print/drivers/pdf/source/Image.h +++ b/src/add-ons/print/drivers/pdf/source/Image.h @@ -34,7 +34,7 @@ THE SOFTWARE. #include #include "pdflib.h" -#include "Utils.h" +#include "PrintUtils.h" #include "Cache.h" class Image; diff --git a/src/add-ons/print/drivers/pdf/source/ImageCache.h b/src/add-ons/print/drivers/pdf/source/ImageCache.h index d23fa9270c..4c5a7983f5 100644 --- a/src/add-ons/print/drivers/pdf/source/ImageCache.h +++ b/src/add-ons/print/drivers/pdf/source/ImageCache.h @@ -35,7 +35,7 @@ THE SOFTWARE. #include #include "pdflib.h" -#include "Utils.h" +#include "PrintUtils.h" #include "Cache.h" extern const char* kTemporaryPath; diff --git a/src/add-ons/print/drivers/pdf/source/Jamfile b/src/add-ons/print/drivers/pdf/source/Jamfile index b433913b38..39120a300a 100644 --- a/src/add-ons/print/drivers/pdf/source/Jamfile +++ b/src/add-ons/print/drivers/pdf/source/Jamfile @@ -3,6 +3,7 @@ SubDir HAIKU_TOP src add-ons print drivers pdf source ; SetSubDirSupportedPlatformsBeOSCompatible ; UsePrivateHeaders print ; +SubDirHdrs [ FDirName $(HAIKU_TOP) headers libs print libprint ] ; SubDirHdrs [ FDirName $(HAIKU_TOP) src libs pdflib libs pdflib ] ; AddResources PDF\ Writer : @@ -45,7 +46,8 @@ Addon PDF\ Writer : be textencoding translation - libpdf.a + libpdf.a + libprint.a libprintutils.a ; diff --git a/src/add-ons/print/drivers/pdf/source/JobSetupWindow.cpp b/src/add-ons/print/drivers/pdf/source/JobSetupWindow.cpp index e37e7f8b7f..54e9e277f0 100644 --- a/src/add-ons/print/drivers/pdf/source/JobSetupWindow.cpp +++ b/src/add-ons/print/drivers/pdf/source/JobSetupWindow.cpp @@ -33,7 +33,7 @@ THE SOFTWARE. #include #include -#include "BeUtils.h" +#include "PrintUtils.h" #include "PrinterDriver.h" #include "JobSetupWindow.h" diff --git a/src/add-ons/print/drivers/pdf/source/JobSetupWindow.h b/src/add-ons/print/drivers/pdf/source/JobSetupWindow.h index 208df5113d..8c870ee674 100644 --- a/src/add-ons/print/drivers/pdf/source/JobSetupWindow.h +++ b/src/add-ons/print/drivers/pdf/source/JobSetupWindow.h @@ -34,7 +34,7 @@ THE SOFTWARE. #include #include "InterfaceUtils.h" -#include "Utils.h" +#include "PrintUtils.h" class JobSetupWindow : public HWindow { diff --git a/src/add-ons/print/drivers/pdf/source/Link.h b/src/add-ons/print/drivers/pdf/source/Link.h index 5b3be612cd..e11060bb3e 100644 --- a/src/add-ons/print/drivers/pdf/source/Link.h +++ b/src/add-ons/print/drivers/pdf/source/Link.h @@ -33,7 +33,7 @@ THE SOFTWARE. #include #include #include -#include "Utils.h" +#include "PrintUtils.h" #include "PDFSystem.h" class PDFSystem; diff --git a/src/add-ons/print/drivers/pdf/source/PDFWriter.h b/src/add-ons/print/drivers/pdf/source/PDFWriter.h index 3b59605e77..0b129b27d6 100644 --- a/src/add-ons/print/drivers/pdf/source/PDFWriter.h +++ b/src/add-ons/print/drivers/pdf/source/PDFWriter.h @@ -43,7 +43,7 @@ THE SOFTWARE. #include "PictureIterator.h" #include "Fonts.h" #include "SubPath.h" -#include "Utils.h" +#include "PrintUtils.h" #include "Link.h" #include "ImageCache.h" #include "PDFSystem.h" diff --git a/src/add-ons/print/drivers/pdf/source/PageSetupWindow.cpp b/src/add-ons/print/drivers/pdf/source/PageSetupWindow.cpp index 9b2aecdace..0f9f98acd5 100644 --- a/src/add-ons/print/drivers/pdf/source/PageSetupWindow.cpp +++ b/src/add-ons/print/drivers/pdf/source/PageSetupWindow.cpp @@ -40,7 +40,7 @@ THE SOFTWARE. #include "MarginView.h" #include "PrinterDriver.h" #include "pdflib.h" // for pageFormat constants -#include "Utils.h" +#include "PrintUtils.h" #include diff --git a/src/add-ons/print/drivers/pdf/source/PrinterDriver.h b/src/add-ons/print/drivers/pdf/source/PrinterDriver.h index 27c1bd8737..2af4c8cd09 100644 --- a/src/add-ons/print/drivers/pdf/source/PrinterDriver.h +++ b/src/add-ons/print/drivers/pdf/source/PrinterDriver.h @@ -37,6 +37,8 @@ THE SOFTWARE. #include "PrintTransport.h" +class BNode; + #ifndef ROUND_UP #define ROUND_UP(x, y) (((x) + (y) - 1) & ~((y) - 1)) #endif diff --git a/src/add-ons/print/drivers/pdf/source/PrinterSettings.cpp b/src/add-ons/print/drivers/pdf/source/PrinterSettings.cpp index 3478c8ce71..2aa07988c2 100644 --- a/src/add-ons/print/drivers/pdf/source/PrinterSettings.cpp +++ b/src/add-ons/print/drivers/pdf/source/PrinterSettings.cpp @@ -33,7 +33,7 @@ THE SOFTWARE. #include -#include "BeUtils.h" +#include "PrintUtils.h" #include "PrinterPrefs.h" diff --git a/src/add-ons/print/drivers/pdf/source/PrinterSetupWindow.h b/src/add-ons/print/drivers/pdf/source/PrinterSetupWindow.h index e3f73f6a79..55720556f3 100644 --- a/src/add-ons/print/drivers/pdf/source/PrinterSetupWindow.h +++ b/src/add-ons/print/drivers/pdf/source/PrinterSetupWindow.h @@ -34,7 +34,7 @@ THE SOFTWARE. #include #include "InterfaceUtils.h" -#include "Utils.h" +#include "PrintUtils.h" class PrinterSetupWindow : public HWindow { diff --git a/src/add-ons/print/drivers/pdf/source/Report.h b/src/add-ons/print/drivers/pdf/source/Report.h index eabd6fe29e..378333431f 100644 --- a/src/add-ons/print/drivers/pdf/source/Report.h +++ b/src/add-ons/print/drivers/pdf/source/Report.h @@ -33,7 +33,7 @@ THE SOFTWARE. #include #include #include -#include "Utils.h" +#include "PrintUtils.h" enum kind { diff --git a/src/add-ons/print/drivers/pdf/source/StatusWindow.h b/src/add-ons/print/drivers/pdf/source/StatusWindow.h index 59cf5c31a9..4e953612a1 100644 --- a/src/add-ons/print/drivers/pdf/source/StatusWindow.h +++ b/src/add-ons/print/drivers/pdf/source/StatusWindow.h @@ -37,7 +37,7 @@ THE SOFTWARE. //class PrinterDriver; #include "PrinterDriver.h" #include "InterfaceUtils.h" -#include "Utils.h" +#include "PrintUtils.h" class StatusWindow : public HWindow { diff --git a/src/add-ons/print/drivers/pdf/source/XReferences.h b/src/add-ons/print/drivers/pdf/source/XReferences.h index 383f102843..ba088fd576 100644 --- a/src/add-ons/print/drivers/pdf/source/XReferences.h +++ b/src/add-ons/print/drivers/pdf/source/XReferences.h @@ -33,7 +33,7 @@ THE SOFTWARE. #include #include "Link.h" #include "RegExp.h" -#include "Utils.h" +#include "PrintUtils.h" class MatchResult; class Pattern; diff --git a/src/add-ons/print/drivers/postscript/Jamfile b/src/add-ons/print/drivers/postscript/Jamfile index ae7b2ec38f..1b121cf620 100644 --- a/src/add-ons/print/drivers/postscript/Jamfile +++ b/src/add-ons/print/drivers/postscript/Jamfile @@ -10,11 +10,7 @@ Addon PS\ Compatible : PSEntry.cpp PS.cpp PSCap.cpp - : - be - libprint.a - libprintutils.a - $(TARGET_LIBSTDC++) + : be libprint.a $(TARGET_LIBSTDC++) ; Package haiku-printingkit-cvs : diff --git a/src/add-ons/print/drivers/preview/Jamfile b/src/add-ons/print/drivers/preview/Jamfile index 7ee143f281..612c3869a3 100644 --- a/src/add-ons/print/drivers/preview/Jamfile +++ b/src/add-ons/print/drivers/preview/Jamfile @@ -2,7 +2,7 @@ SubDir HAIKU_TOP src add-ons print drivers preview ; SetSubDirSupportedPlatformsBeOSCompatible ; -UsePrivateHeaders print ; +SubDirHdrs [ FDirName $(HAIKU_TOP) headers libs print libprint ] ; AddResources Preview : Preview.rsrc ; @@ -13,10 +13,7 @@ Addon Preview : Preview.cpp PrinterDriver.cpp PreviewDriver.cpp - : - be - root - libprintutils.a + : be libprint.a ; Package haiku-printingkit-cvs : diff --git a/src/add-ons/print/drivers/preview/JobSetupWindow.h b/src/add-ons/print/drivers/preview/JobSetupWindow.h index dcbb5da62a..6cf26c1b68 100644 --- a/src/add-ons/print/drivers/preview/JobSetupWindow.h +++ b/src/add-ons/print/drivers/preview/JobSetupWindow.h @@ -14,7 +14,7 @@ #include "InterfaceUtils.h" -#include "Utils.h" +#include "PrintUtils.h" #include diff --git a/src/add-ons/print/drivers/preview/PageSetupWindow.cpp b/src/add-ons/print/drivers/preview/PageSetupWindow.cpp index 5e8ebf1ce1..274a82e9e1 100644 --- a/src/add-ons/print/drivers/preview/PageSetupWindow.cpp +++ b/src/add-ons/print/drivers/preview/PageSetupWindow.cpp @@ -10,11 +10,10 @@ * julun */ -#include "BeUtils.h" #include "MarginView.h" #include "PrinterDriver.h" #include "PageSetupWindow.h" - +#include "PrintUtils.h" #include diff --git a/src/add-ons/print/drivers/preview/PageSetupWindow.h b/src/add-ons/print/drivers/preview/PageSetupWindow.h index 74817b7630..0387e388cb 100644 --- a/src/add-ons/print/drivers/preview/PageSetupWindow.h +++ b/src/add-ons/print/drivers/preview/PageSetupWindow.h @@ -15,7 +15,7 @@ #include "InterfaceUtils.h" -#include "Utils.h" +#include "PrintUtils.h" #include diff --git a/src/add-ons/print/drivers/preview/Preview.cpp b/src/add-ons/print/drivers/preview/Preview.cpp index 93c785e050..942c23a7a3 100644 --- a/src/add-ons/print/drivers/preview/Preview.cpp +++ b/src/add-ons/print/drivers/preview/Preview.cpp @@ -8,10 +8,8 @@ * julun */ -#include "BeUtils.h" -#include "Utils.h" #include "Preview.h" - +#include "PrintUtils.h" #include diff --git a/src/kits/print/BeUtils.cpp b/src/kits/print/BeUtils.cpp index 64bd3db7fc..e80e5a9ac9 100644 --- a/src/kits/print/BeUtils.cpp +++ b/src/kits/print/BeUtils.cpp @@ -93,56 +93,3 @@ bool MimeTypeForSender(BMessage* sender, BString& mime) { } return false; } - -static bool InList(const char* list[], const char* name) { - for (int i = 0; list[i] != NULL; i ++) { - if (strcmp(list[i], name) == 0) return true; - } - return false; -} - -void AddFields(BMessage* to, const BMessage* from, const char* excludeList[], const char* includeList[], bool overwrite) { - if (to == from) return; -#ifndef B_BEOS_VERSION_DANO - char* name; -#else - const char* name; -#endif - type_code type; - int32 count; - for (int32 i = 0; from->GetInfo(B_ANY_TYPE, i, &name, &type, &count) == B_OK; i ++) { - const void* data; - ssize_t size; - - if (excludeList && InList(excludeList, name)) continue; - if (includeList && !InList(includeList, name)) continue; - - if (!overwrite && to->FindData(name, type, 0, &data, &size) == B_OK) { - continue; - } - // replace existing data - to->RemoveName(name); - - for (int32 j = 0; j < count; j ++) { - if (from->FindData(name, type, j, &data, &size) == B_OK) { - if (type == B_STRING_TYPE) { - to->AddString(name, (const char*)data); - } else if (type == B_MESSAGE_TYPE) { - BMessage m; - from->FindMessage(name, j, &m); - to->AddMessage(name, &m); - } else { - to->AddData(name, type, data, size); - } - } - } - } -} - -BRect ScaleRect(BRect rect, float scale) { - rect.left *= scale; - rect.right *= scale; - rect.top *= scale; - rect.bottom *= scale; - return rect; -} diff --git a/src/kits/print/Jamfile b/src/kits/print/Jamfile index df310e471c..800573bc47 100644 --- a/src/kits/print/Jamfile +++ b/src/kits/print/Jamfile @@ -8,13 +8,9 @@ StaticLibrary libprintutils.a : BeUtils.cpp BeUtilsTranslation.cpp FolderWatcher.cpp - InterfaceUtils.cpp Jobs.cpp - MarginView.cpp - PrintJobReader.cpp PicturePrinter.cpp PrintTransport.cpp PictureIterator.cpp PrintTransportAddOn.cpp - Utils.cpp ; diff --git a/src/kits/print/InterfaceUtils.cpp b/src/libs/print/libprint/InterfaceUtils.cpp similarity index 94% rename from src/kits/print/InterfaceUtils.cpp rename to src/libs/print/libprint/InterfaceUtils.cpp index 99c6faecd8..10bdb6000b 100644 --- a/src/kits/print/InterfaceUtils.cpp +++ b/src/libs/print/libprint/InterfaceUtils.cpp @@ -30,7 +30,28 @@ THE SOFTWARE. #include #include #include "InterfaceUtils.h" -#include "Utils.h" + + +EscapeMessageFilter::EscapeMessageFilter(BWindow *window, int32 what) + : BMessageFilter(B_ANY_DELIVERY, B_ANY_SOURCE, '_KYD') + , fWindow(window), + fWhat(what) +{ +} + + +filter_result +EscapeMessageFilter::Filter(BMessage *msg, BHandler **target) +{ + int32 key; + // notify window with message fWhat if Escape key is hit + if (B_OK == msg->FindInt32("key", &key) && key == 1) { + fWindow->PostMessage(fWhat); + return B_SKIP_MESSAGE; + } + return B_DISPATCH_MESSAGE; +} + // Implementation of HWindow diff --git a/src/libs/print/libprint/JSDSlider.cpp b/src/libs/print/libprint/JSDSlider.cpp index a2340f4b25..296915a478 100644 --- a/src/libs/print/libprint/JSDSlider.cpp +++ b/src/libs/print/libprint/JSDSlider.cpp @@ -9,42 +9,42 @@ #include "JSDSlider.h" -#include - #include #include #include -JSDSlider :: JSDSlider(BRect frame, const char* name, const char *label, - BMessage *msg, int32 min, int32 max, thumb_style t) - : BSlider(frame, name, label, msg, min, max, t) -{ - fResult = new BString(); -} -JSDSlider :: ~JSDSlider() -{ - delete fResult; -} - -char* JSDSlider :: UpdateText() const +JSDSlider::JSDSlider(BRect frame, const char* name, const char *label, + BMessage *msg, int32 min, int32 max, thumb_style t) + : BSlider(frame, name, label, msg, min, max, t) { -// When the slider's Draw method is called, this method -// will also be called. If its return value is non-NULL, -// then it will be drawn with the rest of the slider +} + + +JSDSlider::~JSDSlider() +{ +} + + +const char* +JSDSlider::UpdateText() const +{ + // When the slider's Draw method is called, this method will also be called. + // If its return value is non-NULL, then it will be drawn with the rest of + // the slider static char string[64]; string[0] = 0; - - if (!strcmp("gamma", Name()) ) { + + if (!strcmp("gamma", Name())) { float gamma; - gamma = exp((Value() * log(2.0) * 0.01) ); - sprintf(string, " %.2f", gamma); - } else if (!strcmp("inkDensity", Name()) ) { + gamma = exp((Value() * log(2.0) * 0.01) ); + sprintf(string, " %.2f", gamma); + } else if (!strcmp("inkDensity", Name()) ) { float density = Value(); - density = (density / 127.0) * 100.0; - sprintf(string," %.0f%%", density); + density = (density / 127.0) * 100.0; + sprintf(string," %.0f%%", density); } - - *fResult = string; - return (char *)fResult->String(); -} + + fResult.SetTo(string); + return fResult.String(); +} diff --git a/src/libs/print/libprint/Jamfile b/src/libs/print/libprint/Jamfile index 6ff682449f..1ad0c2b7fe 100644 --- a/src/libs/print/libprint/Jamfile +++ b/src/libs/print/libprint/Jamfile @@ -2,7 +2,6 @@ SubDir HAIKU_TOP src libs print libprint ; SetSubDirSupportedPlatformsBeOSCompatible ; -UsePrivateHeaders print ; SubDirHdrs [ FDirName $(HAIKU_TOP) headers libs print libprint ] ; StaticLibrary libprint.a : @@ -13,9 +12,11 @@ StaticLibrary libprint.a : GraphicsDriver.cpp Halftone.cpp HalftoneView.cpp + InterfaceUtils.cpp JSDSlider.cpp JobData.cpp JobSetupDlg.cpp + MarginView.cpp PackBits.cpp PageSetupDlg.cpp PagesView.cpp @@ -24,6 +25,8 @@ StaticLibrary libprint.a : PrinterDriver.cpp PrinterCap.cpp PrintProcess.cpp + PrintJobReader.cpp + PrintUtils.cpp SpoolMetaData.cpp StatusWindow.cpp Transport.cpp diff --git a/src/kits/print/MarginView.cpp b/src/libs/print/libprint/MarginView.cpp similarity index 100% rename from src/kits/print/MarginView.cpp rename to src/libs/print/libprint/MarginView.cpp diff --git a/src/libs/print/libprint/PageSetupDlg.cpp b/src/libs/print/libprint/PageSetupDlg.cpp index 1fe68ff0d2..f05691b774 100644 --- a/src/libs/print/libprint/PageSetupDlg.cpp +++ b/src/libs/print/libprint/PageSetupDlg.cpp @@ -30,13 +30,15 @@ #include #include -#include "BeUtils.h" + #include "DbgMsg.h" #include "JobData.h" #include "MarginView.h" #include "PageSetupDlg.h" #include "PrinterData.h" #include "PrinterCap.h" +#include "PrintUtils.h" + #if (!__MWERKS__ || defined(MSIPL_USING_NAMESPACE)) using namespace std; diff --git a/src/libs/print/libprint/Preview.cpp b/src/libs/print/libprint/Preview.cpp index 0e5596d173..f86290e344 100644 --- a/src/libs/print/libprint/Preview.cpp +++ b/src/libs/print/libprint/Preview.cpp @@ -11,11 +11,11 @@ #include #include -#include "BeUtils.h" -#include "Utils.h" #include "GraphicsDriver.h" #include "Preview.h" +#include "PrintUtils.h" + // Implementation of PreviewPage PreviewPage::PreviewPage(int32 page, PrintJobPage* pjp) diff --git a/src/kits/print/PrintJobReader.cpp b/src/libs/print/libprint/PrintJobReader.cpp similarity index 100% rename from src/kits/print/PrintJobReader.cpp rename to src/libs/print/libprint/PrintJobReader.cpp diff --git a/src/kits/print/Utils.cpp b/src/libs/print/libprint/PrintUtils.cpp similarity index 61% rename from src/kits/print/Utils.cpp rename to src/libs/print/libprint/PrintUtils.cpp index 1ce14b5127..636d09f41f 100644 --- a/src/kits/print/Utils.cpp +++ b/src/libs/print/libprint/PrintUtils.cpp @@ -30,13 +30,27 @@ THE SOFTWARE. */ -#include "Utils.h" +#include "PrintUtils.h" #include #include +BRect +ScaleRect(const BRect& rect, float scale) +{ + BRect scaleRect(rect); + + scaleRect.left *= scale; + scaleRect.right *= scale; + scaleRect.top *= scale; + scaleRect.bottom *= scale; + + return scaleRect; +} + + void SetBool(BMessage* msg, const char* name, bool value) { @@ -99,25 +113,58 @@ SetString(BMessage* msg, const char* name, const BString& value) } -// #pragma mark -- EscapeMessageFilter - - -EscapeMessageFilter::EscapeMessageFilter(BWindow *window, int32 what) - : BMessageFilter(B_ANY_DELIVERY, B_ANY_SOURCE, '_KYD') - , fWindow(window), - fWhat(what) +static +bool InList(const char* list[], const char* name) { -} - - -filter_result -EscapeMessageFilter::Filter(BMessage *msg, BHandler **target) -{ - int32 key; - // notify window with message fWhat if Escape key is hit - if (B_OK == msg->FindInt32("key", &key) && key == 1) { - fWindow->PostMessage(fWhat); - return B_SKIP_MESSAGE; + for (int i = 0; list[i] != NULL; ++i) { + if (strcmp(list[i], name) == 0) + return true; + } + return false; +} + + +void +AddFields(BMessage* to, const BMessage* from, const char* excludeList[], + const char* includeList[], bool overwrite) +{ + if (to == from) + return; +#ifndef B_BEOS_VERSION_DANO + char* name; +#else + const char* name; +#endif + type_code type; + int32 count; + for (int32 i = 0; from->GetInfo(B_ANY_TYPE, i, &name, &type, &count) + == B_OK; ++i) { + if (excludeList && InList(excludeList, name)) + continue; + + if (includeList && !InList(includeList, name)) + continue; + + ssize_t size; + const void* data; + if (!overwrite && to->FindData(name, type, 0, &data, &size) == B_OK) + continue; + + // replace existing data + to->RemoveName(name); + + for (int32 j = 0; j < count; ++j) { + if (from->FindData(name, type, j, &data, &size) == B_OK) { + if (type == B_STRING_TYPE) { + to->AddString(name, (const char*)data); + } else if (type == B_MESSAGE_TYPE) { + BMessage m; + from->FindMessage(name, j, &m); + to->AddMessage(name, &m); + } else { + to->AddData(name, type, data, size); + } + } + } } - return B_DISPATCH_MESSAGE; } diff --git a/src/libs/print/libprint/PrinterDriver.cpp b/src/libs/print/libprint/PrinterDriver.cpp index abcb27c042..34d71146cc 100644 --- a/src/libs/print/libprint/PrinterDriver.cpp +++ b/src/libs/print/libprint/PrinterDriver.cpp @@ -8,12 +8,13 @@ #include // for attr_info #include +#include #include #include +#include #include #include // for auto_ptr -#include "BeUtils.h" #include "AboutBox.h" #include "AddPrinterDlg.h" #include "DbgMsg.h" @@ -23,6 +24,7 @@ #include "PrinterData.h" #include "UIDriver.h" #include "Preview.h" +#include "PrintUtils.h" // Implementation of PrinterDriver diff --git a/src/servers/print/ConfigWindow.cpp b/src/servers/print/ConfigWindow.cpp index 54be9c9da3..428e9efd81 100644 --- a/src/servers/print/ConfigWindow.cpp +++ b/src/servers/print/ConfigWindow.cpp @@ -10,7 +10,7 @@ #include "Printer.h" #include "PrintServerApp.h" #include "ConfigWindow.h" -#include "BeUtils.h" +#include "PrintUtils.h" // posix #include diff --git a/src/servers/print/Jamfile b/src/servers/print/Jamfile index 88a8802ca4..55fa99692f 100644 --- a/src/servers/print/Jamfile +++ b/src/servers/print/Jamfile @@ -3,6 +3,7 @@ SubDir HAIKU_TOP src servers print ; SetSubDirSupportedPlatformsBeOSCompatible ; UsePrivateHeaders shared print ; +SubDirHdrs [ FDirName $(HAIKU_TOP) headers libs print libprint ] ; AddResources print_server : print_server.rdef @@ -25,6 +26,7 @@ LinkAgainst print_server : be root translation + libprint.a libprintutils.a ;