The Gnome Chemistry Utils 0.12.10
|
00001 /* 00002 * Gnome Chemistry Utils 00003 * printable.h 00004 * 00005 * Copyright (C) 2008 Jean Bréfort <jean.brefort@normalesup.org> 00006 * 00007 * This program is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU General Public License as 00009 * published by the Free Software Foundation; either version 2 of the 00010 * License, or (at your option) any later version. 00011 * 00012 * This program is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this program; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 00020 * USA 00021 */ 00022 00023 #ifndef GCU_PRINTABLE_H 00024 #define GCU_PRINTABLE_H 00025 00026 #include "dialog-owner.h" 00027 #include "macros.h" 00028 #include <gtk/gtkprintoperation.h> 00029 #include <gtk/gtkprintcontext.h> 00030 #include <gtk/gtkpagesetup.h> 00031 #include <gtk/gtkprintsettings.h> 00032 00035 namespace gcu { 00036 00040 typedef enum { 00044 GCU_PRINT_SCALE_NONE, 00048 GCU_PRINT_SCALE_FIXED, 00052 GCU_PRINT_SCALE_AUTO, 00053 } PrintScaleType; 00054 00058 class Printable: virtual public DialogOwner 00059 { 00060 public: 00064 Printable (); 00068 virtual ~Printable (); 00069 00079 virtual void DoPrint (GtkPrintOperation *print, GtkPrintContext *context, int page) const = 0; 00085 virtual bool SupportsHeaders () {return false;} 00091 virtual bool SupportMultiplePages () {return false;} 00096 virtual GtkWindow *GetGtkWindow () = 0; 00101 virtual int GetPagesNumber () {return 1;} 00102 00108 void Print (bool preview); 00116 void SetPageSetup (GtkPageSetup *PageSetup); 00117 00121 GCU_RO_PROP (GtkPrintSettings *, PrintSettings) 00125 GCU_RO_PROP (GtkPageSetup *, PageSetup) 00137 GCU_PROP (GtkUnit, Unit) 00149 GCU_PROP (double, HeaderHeight) 00161 GCU_PROP (double, FooterHeight) 00172 GCU_PROP (bool, HorizCentered) 00183 GCU_PROP (bool, VertCentered) 00195 GCU_PROP (PrintScaleType, ScaleType) 00207 GCU_PROP (double, Scale) 00218 GCU_PROP (bool, HorizFit) 00228 GCU_PROP (bool, VertFit) 00241 GCU_PROP (int, HPages) 00254 GCU_PROP (int, VPages) 00255 }; 00256 00261 GtkUnit gtk_unit_from_string (char const *name); 00266 char const *gtk_unit_to_string (GtkUnit unit); 00267 00268 } // namespace gcu 00269 00270 #endif // GCU_PRINTABLE_H