[GB.GTK]
* BUG: Printer.PaperWidth and Printer.PaperHeight should return the expected values for predefined papers. git-svn-id: svn://localhost/gambas/trunk@2833 867c0c6c-44f3-4631-809d-bfa615b0a4ec
This commit is contained in:
parent
7162466e05
commit
ea3c59fcd9
2 changed files with 26 additions and 10 deletions
|
@ -291,12 +291,11 @@ void gPrinter::setOrientation(int v)
|
||||||
gtk_print_settings_set_orientation(_settings, orient);
|
gtk_print_settings_set_orientation(_settings, orient);
|
||||||
}
|
}
|
||||||
|
|
||||||
void gPrinter::setPaperModel(int v)
|
GtkPaperSize *gPrinter::getPaperSize()
|
||||||
{
|
{
|
||||||
GtkPaperSize *paper;
|
|
||||||
const char *name;
|
const char *name;
|
||||||
|
|
||||||
switch(v)
|
switch(_paper_size)
|
||||||
{
|
{
|
||||||
case GB_PRINT_A3: name = GTK_PAPER_NAME_A3; break;
|
case GB_PRINT_A3: name = GTK_PAPER_NAME_A3; break;
|
||||||
case GB_PRINT_A4: name = GTK_PAPER_NAME_A4; break;
|
case GB_PRINT_A4: name = GTK_PAPER_NAME_A4; break;
|
||||||
|
@ -305,20 +304,36 @@ void gPrinter::setPaperModel(int v)
|
||||||
case GB_PRINT_LETTER: name = GTK_PAPER_NAME_LETTER; break;
|
case GB_PRINT_LETTER: name = GTK_PAPER_NAME_LETTER; break;
|
||||||
case GB_PRINT_EXECUTIVE: name = GTK_PAPER_NAME_EXECUTIVE; break;
|
case GB_PRINT_EXECUTIVE: name = GTK_PAPER_NAME_EXECUTIVE; break;
|
||||||
case GB_PRINT_LEGAL: name = GTK_PAPER_NAME_LEGAL; break;
|
case GB_PRINT_LEGAL: name = GTK_PAPER_NAME_LEGAL; break;
|
||||||
default: name = GTK_PAPER_NAME_A4; v = GB_PRINT_A4;
|
default: name = GTK_PAPER_NAME_A4; _paper_size = GB_PRINT_A4;
|
||||||
}
|
}
|
||||||
|
|
||||||
_paper_size = v;
|
return gtk_paper_size_new(name);
|
||||||
|
}
|
||||||
|
|
||||||
paper = gtk_paper_size_new(name);
|
void gPrinter::setPaperModel(int v)
|
||||||
|
{
|
||||||
|
GtkPaperSize *paper;
|
||||||
|
|
||||||
|
_paper_size = v;
|
||||||
|
paper = getPaperSize();
|
||||||
gtk_print_settings_set_paper_size(_settings, paper);
|
gtk_print_settings_set_paper_size(_settings, paper);
|
||||||
gtk_paper_size_free(paper);
|
gtk_paper_size_free(paper);
|
||||||
}
|
}
|
||||||
|
|
||||||
void gPrinter::getPaperSize(double *width, double *height) const
|
void gPrinter::getPaperSize(double *width, double *height)
|
||||||
{
|
{
|
||||||
|
if (_paper_size == GB_PRINT_CUSTOM)
|
||||||
|
{
|
||||||
*width = gtk_print_settings_get_paper_width(_settings, GTK_UNIT_MM);
|
*width = gtk_print_settings_get_paper_width(_settings, GTK_UNIT_MM);
|
||||||
*height = gtk_print_settings_get_paper_height(_settings, GTK_UNIT_MM);
|
*height = gtk_print_settings_get_paper_height(_settings, GTK_UNIT_MM);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GtkPaperSize *paper = getPaperSize();
|
||||||
|
*width = gtk_paper_size_get_width(paper, GTK_UNIT_MM);
|
||||||
|
*height = gtk_paper_size_get_height(paper, GTK_UNIT_MM);
|
||||||
|
gtk_paper_size_free(paper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void gPrinter::setPaperSize(double width, double height)
|
void gPrinter::setPaperSize(double width, double height)
|
||||||
|
|
|
@ -46,7 +46,7 @@ public:
|
||||||
int paperModel() const { return _paper_size; }
|
int paperModel() const { return _paper_size; }
|
||||||
void setPaperModel(int v);
|
void setPaperModel(int v);
|
||||||
|
|
||||||
void getPaperSize(double *width, double *height) const;
|
void getPaperSize(double *width, double *height);
|
||||||
void setPaperSize(double width, double height);
|
void setPaperSize(double width, double height);
|
||||||
|
|
||||||
bool collateCopies() const;
|
bool collateCopies() const;
|
||||||
|
@ -94,6 +94,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool run(bool configure);
|
bool run(bool configure);
|
||||||
|
GtkPaperSize *getPaperSize();
|
||||||
|
|
||||||
GtkPrintOperation *_operation;
|
GtkPrintOperation *_operation;
|
||||||
GtkPrintSettings *_settings;
|
GtkPrintSettings *_settings;
|
||||||
|
|
Loading…
Reference in a new issue