#ifndef PRINTING_PAGE_SETUP_H_
#define PRINTING_PAGE_SETUP_H_
#include "base/component_export.h"
#include "ui/gfx/geometry/rect.h"
namespace printing {
class COMPONENT_EXPORT(PRINTING_SETTINGS) PageMargins {
public:
PageMargins();
PageMargins(int header, int footer, int left, int right, int top, int bottom);
bool operator==(const PageMargins& other) const;
void Clear();
std::string ToString() const;
bool IsEmpty() const;
int header;
int footer;
int left;
int right;
int top;
int bottom;
};
class COMPONENT_EXPORT(PRINTING_SETTINGS) PageSetup {
public:
PageSetup();
PageSetup(const gfx::Size& physical_size,
const gfx::Rect& printable_area,
const PageMargins& requested_margins,
bool forced_margins,
int text_height);
PageSetup(const PageSetup& other);
~PageSetup();
bool operator==(const PageSetup& other) const;
static gfx::Rect GetSymmetricalPrintableArea(const gfx::Size& page_size,
const gfx::Rect& printable_area);
void Clear();
void Init(const gfx::Size& physical_size,
const gfx::Rect& printable_area,
int text_height);
void SetRequestedMargins(const PageMargins& requested_margins);
void ForceRequestedMargins(const PageMargins& requested_margins);
void FlipOrientation();
const gfx::Size& physical_size() const { return physical_size_; }
const gfx::Rect& overlay_area() const { return overlay_area_; }
const gfx::Rect& content_area() const { return content_area_; }
const gfx::Rect& printable_area() const { return printable_area_; }
const PageMargins& effective_margins() const { return effective_margins_; }
const PageMargins& requested_margins() const { return requested_margins_; }
bool forced_margins() const { return forced_margins_; }
int text_height() const { return text_height_; }
private:
void SetRequestedMarginsAndCalculateSizes(
const PageMargins& requested_margins);
void CalculateSizesWithinRect(const gfx::Rect& bounds, int text_height);
gfx::Size physical_size_;
gfx::Rect printable_area_;
gfx::Rect overlay_area_;
gfx::Rect content_area_;
PageMargins effective_margins_;
PageMargins requested_margins_;
bool forced_margins_;
int text_height_;
};
}
#endif