[gtkmm] PrintJob: Added get/set_page_ranges().
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtkmm] PrintJob: Added get/set_page_ranges().
- Date: Sun, 16 Sep 2012 17:54:37 +0000 (UTC)
commit 6c0927e5a105b19ab2111311c48b6cd7d24c430f
Author: Murray Cumming <murrayc murrayc com>
Date: Sun Sep 16 19:54:32 2012 +0200
PrintJob: Added get/set_page_ranges().
* gtk/src/printjob.[hg|ccg]: Based on the implementations of the similar
functions in PrintSettings.
ChangeLog | 7 +++++++
gtk/src/printjob.ccg | 18 ++++++++++++++++++
gtk/src/printjob.hg | 10 ++++++++--
gtk/src/printsettings.hg | 2 ++
4 files changed, 35 insertions(+), 2 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 1cf63d0..9631ab3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-09-16 Murray Cumming <murrayc murrayc com>
+
+ PrintJob: Added get/set_page_ranges().
+
+ * gtk/src/printjob.[hg|ccg]: Based on the implementations of the similar
+ functions in PrintSettings.
+
2012-09-13 Kjell Ahlstedt <kjell ahlstedt bredband net>
Use std::time_t instead of ::time_t.
diff --git a/gtk/src/printjob.ccg b/gtk/src/printjob.ccg
index 74f6671..2263faa 100644
--- a/gtk/src/printjob.ccg
+++ b/gtk/src/printjob.ccg
@@ -56,4 +56,22 @@ void PrintJob::send(const SlotPrintJobComplete& slot)
gtk_print_job_send(gobj(), &SignalProxy_Custom_gtk_callback, slot_copy, &SignalProxy_Custom_gtk_callback_destroy);
}
+std::vector<PrintSettings::PageRange> PrintJob::get_page_ranges() const
+{
+ int num_ranges (0);
+ GtkPageRange* page_ranges =
+ gtk_print_job_get_page_ranges(const_cast<GtkPrintJob*>(gobj()), &num_ranges);
+
+ // no need for deep ownership.
+ return Glib::ArrayHandler<PrintSettings::PageRange, PrintSettings::PageRangeTraits>::array_to_vector(page_ranges, num_ranges, Glib::OWNERSHIP_SHALLOW);
+}
+
+void PrintJob::set_page_ranges(const std::vector<PrintSettings::PageRange>& page_ranges)
+{
+ gtk_print_job_set_page_ranges(gobj(),
+ Glib::ArrayHandler<PrintSettings::PageRange, PrintSettings::PageRangeTraits>::vector_to_array(page_ranges).data (),
+ page_ranges.size ());
+}
+
+
} // namespace Gtk
diff --git a/gtk/src/printjob.hg b/gtk/src/printjob.hg
index 085c1fe..fba56a7 100644
--- a/gtk/src/printjob.hg
+++ b/gtk/src/printjob.hg
@@ -86,8 +86,14 @@ public:
_WRAP_METHOD(PrintPages get_pages() const, gtk_print_job_get_pages)
_WRAP_METHOD(void set_pages(PrintPages pages), gtk_print_job_set_pages)
-//TODO: _WRAP_METHOD(PageRange* get_page_ranges(int *n_ranges), gtk_print_job_get_page_ranges)
-//TODO: _WRAP_METHOD(void set_page_ranges(GtkPageRange* ranges, int n_ranges), gtk_print_job_set_page_ranges)
+
+ std::vector<PrintSettings::PageRange> get_page_ranges() const;
+ _IGNORE(gtk_print_job_get_page_ranges)
+
+ void set_page_ranges(const std::vector<PrintSettings::PageRange>& ranges);
+ _IGNORE(gtk_print_job_set_page_ranges)
+
+
_WRAP_METHOD(PageSet get_page_set() const, gtk_print_job_get_page_set)
_WRAP_METHOD(void set_page_set(PageSet page_set), gtk_print_job_set_page_set)
_WRAP_METHOD(int get_num_copies() const, gtk_print_job_get_num_copies)
diff --git a/gtk/src/printsettings.hg b/gtk/src/printsettings.hg
index 8374d94..06de81a 100644
--- a/gtk/src/printsettings.hg
+++ b/gtk/src/printsettings.hg
@@ -262,6 +262,8 @@ public:
_WRAP_METHOD(PrintPages get_print_pages() const, gtk_print_settings_get_print_pages)
_WRAP_METHOD(void set_print_pages(PrintPages print_pages), gtk_print_settings_set_print_pages)
+ //TODO: Move this out of the class when we can break ABI,
+ //because this is also used in PringJob.
//This corresponds to GtkPageRange.
class PageRange
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]