gnome-scan r517 - in trunk: . doc/ref doc/ref/images lib
- From: bersace svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-scan r517 - in trunk: . doc/ref doc/ref/images lib
- Date: Tue, 26 Feb 2008 22:27:15 +0000 (GMT)
Author: bersace
Date: Tue Feb 26 22:27:14 2008
New Revision: 517
URL: http://svn.gnome.org/viewvc/gnome-scan?rev=517&view=rev
Log:
Rework and complete ref doc.
Added:
trunk/doc/ref/gnome-scan-1.0-sections.txt
Removed:
trunk/doc/ref/images/GSParamSpecFilenames.png
trunk/doc/ref/images/GSParamSpecOutputFilename.png
trunk/doc/ref/images/GnomeScanAcquisitionDialog.png
Modified:
trunk/ChangeLog
trunk/doc/ref/Makefile.am
trunk/doc/ref/gnome-scan-1.0-docs.sgml
trunk/doc/ref/gnome-scan-1.0.types
trunk/lib/gnome-scan-acquisition-dialog.c
trunk/lib/gnome-scan-backend.c
trunk/lib/gnome-scan-dialog.c
trunk/lib/gnome-scan-init.c
trunk/lib/gnome-scan-init.h
trunk/lib/gnome-scan-job.c
trunk/lib/gnome-scan-param-specs.c
trunk/lib/gnome-scan-param-specs.h
trunk/lib/gnome-scan-param-widget.c
trunk/lib/gnome-scan-param-widget.h
trunk/lib/gnome-scan-plugin.c
trunk/lib/gnome-scan-plugin.h
trunk/lib/gnome-scan-preview-plugin.c
trunk/lib/gnome-scan-preview-plugin.h
trunk/lib/gnome-scan-settings.c
trunk/lib/gnome-scan-sink.c
trunk/lib/gnome-scan-utils.c
trunk/lib/gnome-scan-utils.h
trunk/lib/gnome-scan.h
trunk/lib/gnome-scanner.c
Modified: trunk/doc/ref/Makefile.am
==============================================================================
--- trunk/doc/ref/Makefile.am (original)
+++ trunk/doc/ref/Makefile.am Tue Feb 26 22:27:14 2008
@@ -107,8 +107,8 @@
echo "</para>" >> $@;
-purge:
+purge: clean
rm -rf html xml *.stamp gallery.xml;
rm -rf $(DOC_MODULE).{args,hierarchy,interfaces,prerequisites,signals};
- rm -rf $(DOC_MODULE)-{decl*,sections,undocumented,unused,overrides}.txt
+ rm -rf $(DOC_MODULE)-{decl*,undocumented,unused}.txt
Modified: trunk/doc/ref/gnome-scan-1.0-docs.sgml
==============================================================================
--- trunk/doc/ref/gnome-scan-1.0-docs.sgml (original)
+++ trunk/doc/ref/gnome-scan-1.0-docs.sgml Tue Feb 26 22:27:14 2008
@@ -11,41 +11,40 @@
</bookinfo>
<part id="core">
- <title>Gnome Scan Core</title>
+ <title>Gnome Scan Core Reference</title>
- <xi:include href="xml/gnome-scan-init.xml"/>
- <xi:include href="xml/gnome-scan-types.xml"/>
+ <chapter id="setup">
+ <title>Using Gnome Scan</title>
+ <xi:include href="xml/gnome-scan-init.xml"/>
+ <xi:include href="xml/gnome-scan-dialog.xml"/>
+ <xi:include href="xml/gnome-scan-job.xml"/>
+ <xi:include href="xml/gnome-scan-settings.xml"/>
+ </chapter>
- <chapter id="extend">
- <title>Plugins and Modules</title>
+ <chapter id="extends">
+ <title>Extending For Application</title>
<xi:include href="xml/gnome-scan-plugin.xml"/>
+ <xi:include href="xml/gnome-scan-sink.xml"/>
<xi:include href="xml/gnome-scan-param-specs.xml"/>
- <xi:include href="xml/gnome-scan-module.xml"/>
- <xi:include href="xml/gnome-scan-module-manager.xml"/>
+ <xi:include href="xml/gnome-scan-param-widget.xml"/>
+ <xi:include href="xml/gnome-scan-preview-plugin.xml"/>
</chapter>
</part>
- <part id="objects">
- <title>Gnome Scan Objects</title>
+ <part id="internals">
+ <title>Gnome Scan Internals</title>
+ <xi:include href="xml/gnome-scan-types.xml"/>
+ <xi:include href="xml/gnome-scan-utils.xml"/>
<chapter id="backend">
- <title>Backend</title>
- <xi:include href="xml/gnome-scan-job.xml"/>
- <xi:include href="xml/gnome-scan-settings.xml"/>
+ <title>Writing Backend</title>
+ <xi:include href="xml/gnome-scan-module.xml"/>
<xi:include href="xml/gnome-scan-backend.xml"/>
<xi:include href="xml/gnome-scanner.xml"/>
- <xi:include href="xml/gnome-scan-sink.xml"/>
- </chapter>
- <chapter id="widgets">
- <title>Widgets</title>
- <xi:include href="gallery.xml" />
- <xi:include href="xml/gnome-scan-acquisition-dialog.xml"/>
- <xi:include href="xml/gnome-scan-preview-area.xml"/>
- <xi:include href="xml/gnome-scan-dialog.xml"/>
- <xi:include href="xml/gnome-scan-param-widget.xml"/>
</chapter>
</part>
+
<index id="symbols">
<title>Index</title>
</index>
@@ -53,4 +52,8 @@
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>
</index>
+ <index role="gallery" id="gallery">
+ <title>Widget Gallery</title>
+ <xi:include href="gallery.xml" />
+ </index>
</book>
Added: trunk/doc/ref/gnome-scan-1.0-sections.txt
==============================================================================
--- (empty file)
+++ trunk/doc/ref/gnome-scan-1.0-sections.txt Tue Feb 26 22:27:14 2008
@@ -0,0 +1,551 @@
+<SECTION>
+<FILE>gnome-scan-backend</FILE>
+<TITLE>GnomeScanBackend</TITLE>
+GnomeScanBackend
+gnome_scan_backend_new
+gnome_scan_backend_probe_scanners
+gnome_scan_backend_add_scanner
+gnome_scan_backend_remove_scanner
+gnome_scan_backend_probe_done
+<SUBSECTION Standard>
+GNOME_SCAN_BACKEND
+GNOME_IS_SCAN_BACKEND
+GNOME_TYPE_SCAN_BACKEND
+gnome_scan_backend_get_type
+GNOME_SCAN_BACKEND_CLASS
+GNOME_IS_SCAN_BACKEND_CLASS
+GNOME_SCAN_BACKEND_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-enum-widget</FILE>
+GnomeScanEnumWidget
+<SUBSECTION Standard>
+GNOME_SCAN_ENUM_WIDGET
+GNOME_IS_SCAN_ENUM_WIDGET
+GNOME_TYPE_SCAN_ENUM_WIDGET
+GNOME_SCAN_ENUM_WIDGET_CLASS
+GNOME_IS_SCAN_ENUM_WIDGET_CLASS
+GNOME_SCAN_ENUM_WIDGET_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-range-widget</FILE>
+GnomeScanRangeWidget
+<SUBSECTION Standard>
+GNOME_SCAN_RANGE_WIDGET
+GNOME_IS_SCAN_RANGE_WIDGET
+GNOME_TYPE_SCAN_RANGE_WIDGET
+GNOME_SCAN_RANGE_WIDGET_CLASS
+GNOME_IS_SCAN_RANGE_WIDGET_CLASS
+GNOME_SCAN_RANGE_WIDGET_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-number-widget</FILE>
+GnomeScanNumberWidget
+<SUBSECTION Standard>
+GNOME_SCAN_NUMBER_WIDGET
+GNOME_IS_SCAN_NUMBER_WIDGET
+GNOME_TYPE_SCAN_NUMBER_WIDGET
+GNOME_SCAN_NUMBER_WIDGET_CLASS
+GNOME_IS_SCAN_NUMBER_WIDGET_CLASS
+GNOME_SCAN_NUMBER_WIDGET_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-preview-plugin-rotation</FILE>
+<TITLE>GnomeScanPreviewPluginRotation</TITLE>
+GnomeScanPreviewPluginRotation
+<SUBSECTION Standard>
+GNOME_SCAN_PREVIEW_PLUGIN_ROTATION
+GNOME_IS_SCAN_PREVIEW_PLUGIN_ROTATION
+GNOME_TYPE_SCAN_PREVIEW_PLUGIN_ROTATION
+gnome_scan_preview_plugin_rotation_get_type
+GNOME_SCAN_PREVIEW_PLUGIN_ROTATION_CLASS
+GNOME_IS_SCAN_PREVIEW_PLUGIN_ROTATION_CLASS
+GNOME_SCAN_PREVIEW_PLUGIN_ROTATION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-preview-sink</FILE>
+<TITLE>GnomeScanPreviewSink</TITLE>
+GnomeScanPreviewSink
+gnome_scan_preview_sink_new
+gnome_scan_preview_sink_get_pixbuf
+<SUBSECTION Standard>
+GNOME_SCAN_PREVIEW_SINK
+GNOME_IS_SCAN_PREVIEW_SINK
+GNOME_TYPE_SCAN_PREVIEW_SINK
+gnome_scan_preview_sink_get_type
+GNOME_SCAN_PREVIEW_SINK_CLASS
+GNOME_IS_SCAN_PREVIEW_SINK_CLASS
+GNOME_SCAN_PREVIEW_SINK_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-page-orientation-widget</FILE>
+GnomeScanPageOrientationWidget
+<SUBSECTION Standard>
+GNOME_SCAN_PAGE_ORIENTATION_WIDGET
+GNOME_IS_SCAN_PAGE_ORIENTATION_WIDGET
+GNOME_TYPE_SCAN_PAGE_ORIENTATION_WIDGET
+GNOME_SCAN_PAGE_ORIENTATION_WIDGET_CLASS
+GNOME_IS_SCAN_PAGE_ORIENTATION_WIDGET_CLASS
+GNOME_SCAN_PAGE_ORIENTATION_WIDGET_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-module-manager</FILE>
+<TITLE>GnomeScanModuleManager</TITLE>
+GnomeScanModuleManager
+gnome_scan_module_manager_new
+gnome_scan_module_manager_query_modules
+gnome_scan_module_manager_unload_modules
+<SUBSECTION Standard>
+GNOME_SCAN_MODULE_MANAGER
+GNOME_IS_SCAN_MODULE_MANAGER
+GNOME_TYPE_SCAN_MODULE_MANAGER
+gnome_scan_module_manager_get_type
+GNOME_SCAN_MODULE_MANAGER_CLASS
+GNOME_IS_SCAN_MODULE_MANAGER_CLASS
+GNOME_SCAN_MODULE_MANAGER_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-dialog</FILE>
+<TITLE>GnomeScanDialog</TITLE>
+GnomeScanDialog
+gnome_scan_dialog_new
+gnome_scan_dialog_run
+<SUBSECTION Standard>
+GNOME_SCAN_DIALOG
+GNOME_IS_SCAN_DIALOG
+GNOME_TYPE_SCAN_DIALOG
+gnome_scan_dialog_get_type
+GNOME_SCAN_DIALOG_CLASS
+GNOME_IS_SCAN_DIALOG_CLASS
+GNOME_SCAN_DIALOG_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-module</FILE>
+GS_DEFINE_MODULE_TYPE
+<TITLE>GnomeScanModule</TITLE>
+GnomeScanModule
+gnome_scan_module_new
+<SUBSECTION Private>
+NOT_IMPLEMENTED
+<SUBSECTION Standard>
+GNOME_SCAN_MODULE
+GNOME_IS_SCAN_MODULE
+GNOME_TYPE_SCAN_MODULE
+gnome_scan_module_get_type
+GNOME_SCAN_MODULE_CLASS
+GNOME_IS_SCAN_MODULE_CLASS
+GNOME_SCAN_MODULE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-string-widget</FILE>
+GnomeScanStringWidget
+<SUBSECTION Standard>
+GNOME_SCAN_STRING_WIDGET
+GNOME_IS_SCAN_STRING_WIDGET
+GNOME_TYPE_SCAN_STRING_WIDGET
+GNOME_SCAN_STRING_WIDGET_CLASS
+GNOME_IS_SCAN_STRING_WIDGET_CLASS
+GNOME_SCAN_STRING_WIDGET_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-settings</FILE>
+<TITLE>GnomeScanSettings</TITLE>
+GnomeScanSettings
+gnome_scan_settings_new
+gnome_scan_settings_init_value
+gnome_scan_settings_set
+gnome_scan_settings_set_transform
+gnome_scan_settings_set_double
+gnome_scan_settings_set_int
+gnome_scan_settings_set_boolean
+gnome_scan_settings_set_enum
+gnome_scan_settings_set_boxed
+gnome_scan_settings_set_object
+gnome_scan_settings_set_pointer
+gnome_scan_settings_get
+gnome_scan_settings_get_transformed
+gnome_scan_settings_get_string
+gnome_scan_settings_get_double
+gnome_scan_settings_get_int
+gnome_scan_settings_get_boolean
+gnome_scan_settings_get_enum
+gnome_scan_settings_get_boxed
+gnome_scan_settings_get_object
+gnome_scan_settings_get_pointer
+gnome_scan_settings_get_all
+<SUBSECTION Standard>
+GNOME_SCAN_SETTINGS
+GNOME_IS_SCAN_SETTINGS
+GNOME_TYPE_SCAN_SETTINGS
+gnome_scan_settings_get_type
+GNOME_SCAN_SETTINGS_CLASS
+GNOME_IS_SCAN_SETTINGS_CLASS
+GNOME_SCAN_SETTINGS_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-plugin</FILE>
+<TITLE>GnomeScanPlugin</TITLE>
+GnomeScanPlugin
+gnome_scan_plugin_params_add
+gnome_scan_plugin_params_remove
+gnome_scan_plugin_params_clear
+gnome_scan_plugin_params_changed
+gnome_scan_plugin_configure
+gnome_scan_plugin_configure_frame
+gnome_scan_plugin_start_frame
+gnome_scan_plugin_work
+gnome_scan_plugin_end_frame
+gnome_scan_plugin_end_scan
+gnome_scan_plugin_get_child_nodes
+<SUBSECTION Private>
+gnome_scan_plugin_get_name
+gnome_scan_plugin_get_params
+gnome_scan_plugin_params_get_groups
+gnome_scan_plugin_params_get_other_groups
+gnome_scan_plugin_get_param_group
+gnome_scan_plugin_get_param_groups
+gnome_scan_plugin_params_lookup
+gnome_scan_plugin_params_foreach
+<SUBSECTION Standard>
+GNOME_SCAN_PLUGIN
+GNOME_IS_SCAN_PLUGIN
+GNOME_TYPE_SCAN_PLUGIN
+gnome_scan_plugin_get_type
+GNOME_SCAN_PLUGIN_CLASS
+GNOME_IS_SCAN_PLUGIN_CLASS
+GNOME_SCAN_PLUGIN_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-boolean-widget</FILE>
+GnomeScanBooleanWidget
+<SUBSECTION Standard>
+GNOME_SCAN_BOOLEAN_WIDGET
+GNOME_IS_SCAN_BOOLEAN_WIDGET
+GNOME_TYPE_SCAN_BOOLEAN_WIDGET
+GNOME_SCAN_BOOLEAN_WIDGET_CLASS
+GNOME_IS_SCAN_BOOLEAN_WIDGET_CLASS
+GNOME_SCAN_BOOLEAN_WIDGET_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-param-widget</FILE>
+GS_DEFINE_PARAM_WIDGET
+GS_DEFINE_PARAM_WIDGET_HEADER
+<TITLE>GnomeScanParamWidget</TITLE>
+GnomeScanParamWidget
+gnome_scan_param_widget_new
+gnome_scan_param_widget_set_value
+gnome_scan_param_widget_changed
+<SUBSECTION Private>
+gnome_scan_param_widget_get_value
+gnome_scan_param_widget_get_param_spec
+gnome_scan_param_widget_shows_label
+gnome_scan_param_widget_expands
+<SUBSECTION Standard>
+GNOME_SCAN_PARAM_WIDGET
+GNOME_IS_SCAN_PARAM_WIDGET
+GNOME_TYPE_SCAN_PARAM_WIDGET
+gnome_scan_param_widget_get_type
+GNOME_SCAN_PARAM_WIDGET_CLASS
+GNOME_IS_SCAN_PARAM_WIDGET_CLASS
+GNOME_SCAN_PARAM_WIDGET_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-job</FILE>
+<TITLE>GnomeScanJob</TITLE>
+GnomeScanJob
+gnome_scan_job_new
+gnome_scan_job_set_settings
+gnome_scan_job_get_settings
+gnome_scan_job_add_processor
+gnome_scan_job_set_sink
+<SUBSECTION Private>
+gnome_scan_job_set_scanner
+gnome_scan_job_get_scanner
+gnome_scan_job_get_processors
+gnome_scan_job_get_sink
+gnome_scan_job_configure
+gnome_scan_job_run
+gnome_scan_job_run_once
+gnome_scan_job_cancel
+<SUBSECTION Standard>
+GNOME_SCAN_JOB
+GNOME_IS_SCAN_JOB
+GNOME_TYPE_SCAN_JOB
+gnome_scan_job_get_type
+GNOME_SCAN_JOB_CLASS
+GNOME_IS_SCAN_JOB_CLASS
+GNOME_SCAN_JOB_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scanner</FILE>
+GnomeScannerStatus
+GnomeScanEvent
+<TITLE>GnomeScanner</TITLE>
+GnomeScanner
+gnome_scanner_settings_changed
+gnome_scanner_set_status
+<SUBSECTION Private>
+gnome_scanner_get_icon_name
+gnome_scanner_get_status
+gnome_scanner_get_status_string
+gnome_scanner_get_output_format
+<SUBSECTION Standard>
+GNOME_SCANNER
+GNOME_IS_SCANNER
+GNOME_TYPE_SCANNER
+gnome_scanner_get_type
+GNOME_SCANNER_CLASS
+GNOME_IS_SCANNER_CLASS
+GNOME_SCANNER_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-preview-area</FILE>
+<TITLE>GnomeScanPreviewArea</TITLE>
+GnomeScanPreviewArea
+gnome_scan_preview_area_new
+gnome_scan_preview_area_set_pixbuf
+gnome_scan_preview_area_get_resolution
+gnome_scan_preview_area_get_size
+gnome_scan_preview_area_update
+gnome_scan_preview_area_select_plugin
+<SUBSECTION Standard>
+GNOME_SCAN_PREVIEW_AREA
+GNOME_IS_SCAN_PREVIEW_AREA
+GNOME_TYPE_SCAN_PREVIEW_AREA
+gnome_scan_preview_area_get_type
+GNOME_SCAN_PREVIEW_AREA_CLASS
+GNOME_IS_SCAN_PREVIEW_AREA_CLASS
+GNOME_SCAN_PREVIEW_AREA_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-param-specs</FILE>
+GS_DEFINE_PARAM
+GS_PARAM_GROUP_SCANNER_FRONT
+GS_PARAM_GROUP_FORMAT
+GS_PARAM_GROUP_SINK_FRONT
+GS_PARAM_GROUP_PREVIEW
+GS_PARAM_GROUP_HIDDEN
+
+gs_param_spec_get_group
+gs_param_spec_get_group_string
+gs_param_spec_set_group
+gs_param_spec_set_group_from_string
+gs_param_spec_set_domain
+gs_param_spec_get_domain
+gs_param_spec_set_unit
+gs_param_spec_get_unit
+gs_param_spec_set_index
+gs_param_spec_get_index
+gs_param_spec_set_widget_type
+
+gs_param_spec_boolean
+gs_param_spec_int
+gs_param_spec_double
+gs_param_spec_string
+gs_param_spec_pointer
+gs_param_spec_range
+gs_param_spec_enum
+gs_param_spec_paper_size
+gs_param_spec_page_orientation
+
+<SUBSECTION Private>
+GS_PARAM_GROUP_QUARK
+GS_PARAM_DOMAIN_QUARK
+GS_PARAM_UNIT_QUARK
+GS_PARAM_INDEX_QUARK
+GS_PARAM_WIDGET_TYPE_QUARK
+GS_PARAM_FORMATS_QUARK
+gs_group_quark
+gs_domain_quark
+gs_unit_quark
+gs_index_quark
+gs_widget_type_quark
+gs_formats_quark
+
+gs_scanner_front_quark
+gs_format_quark
+gs_sink_front_quark
+gs_preview_quark
+gs_hidden_quark
+
+gs_param_spec_get_widget_type
+gs_param_spec_cmp_index
+gs_param_spec_cmp_name
+gs_param_values_cmp
+
+GS_TYPE_PARAM_RANGE
+GSParamSpecRange
+
+GS_TYPE_PARAM_ENUM
+GS_PARAM_SPEC_ENUM
+GS_IS_PARAM_SPEC_ENUM
+GSParamSpecEnum
+gs_param_enum_get_type
+
+GS_TYPE_PARAM_PAPER_SIZE
+GS_PARAM_SPEC_PAPER_SIZE
+GS_IS_PARAM_SPEC_PAPER_SIZE
+GSParamSpecPaperSize
+gs_param_paper_size_get_type
+gs_param_paper_size_get_extent
+
+GS_TYPE_PARAM_PAGE_ORIENTATION
+GS_PARAM_SPEC_PAGE_ORIENTATION
+GS_IS_PARAM_SPEC_PAGE_ORIENTATION
+GSParamSpecPageOrientation
+gs_param_page_orientation_get_type
+<SUBSECTION Standard>
+GS_PARAM_SPEC_RANGE
+GS_IS_PARAM_SPEC_RANGE
+gs_param_range_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-preview-plugin</FILE>
+GS_DEFINE_PREVIEW_PLUGIN
+<TITLE>GnomeScanPreviewPlugin</TITLE>
+GnomeScanPreviewPlugin
+gnome_scan_preview_plugin
+gnome_scan_preview_plugin_freeze
+gnome_scan_preview_plugin_thaw
+gnome_scan_preview_plugin_changed
+gnome_scan_preview_plugin_draw_buffer
+gnome_scan_preview_plugin_destroy
+<SUBSECTION Private>
+GSPP_MAX_WATCH
+GnomeScanPreviewPluginTypeInfo
+gnome_scan_preview_plugin_type_register_static
+<SUBSECTION Standard>
+GNOME_SCAN_PREVIEW_PLUGIN
+GNOME_IS_SCAN_PREVIEW_PLUGIN
+GNOME_TYPE_SCAN_PREVIEW_PLUGIN
+gnome_scan_preview_plugin_get_type
+GNOME_SCAN_PREVIEW_PLUGIN_CLASS
+GNOME_IS_SCAN_PREVIEW_PLUGIN_CLASS
+GNOME_SCAN_PREVIEW_PLUGIN_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-paper-size-widget</FILE>
+GnomeScanPaperSizeWidget
+<SUBSECTION Standard>
+GNOME_SCAN_PAPER_SIZE_WIDGET
+GNOME_IS_SCAN_PAPER_SIZE_WIDGET
+GNOME_TYPE_SCAN_PAPER_SIZE_WIDGET
+GNOME_SCAN_PAPER_SIZE_WIDGET_CLASS
+GNOME_IS_SCAN_PAPER_SIZE_WIDGET_CLASS
+GNOME_SCAN_PAPER_SIZE_WIDGET_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-sink</FILE>
+<TITLE>GnomeScanSink</TITLE>
+GnomeScanSink
+<SUBSECTION Standard>
+GNOME_SCAN_SINK
+GNOME_IS_SCAN_SINK
+GNOME_TYPE_SCAN_SINK
+gnome_scan_sink_get_type
+GNOME_SCAN_SINK_CLASS
+GNOME_IS_SCAN_SINK_CLASS
+GNOME_SCAN_SINK_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-processor-common</FILE>
+<TITLE>GnomeScanProcessorCommon</TITLE>
+GnomeScanProcessorCommon
+gnome_scan_processor_common_new
+<SUBSECTION Standard>
+GNOME_SCAN_PROCESSOR_COMMON
+GNOME_IS_SCAN_PROCESSOR_COMMON
+GNOME_TYPE_SCAN_PROCESSOR_COMMON
+gnome_scan_processor_common_get_type
+GNOME_SCAN_PROCESSOR_COMMON_CLASS
+GNOME_IS_SCAN_PROCESSOR_COMMON_CLASS
+GNOME_SCAN_PROCESSOR_COMMON_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-acquisition-dialog</FILE>
+<TITLE>GnomeScanAcquisitionDialog</TITLE>
+GnomeScanAcquisitionDialog
+gnome_scan_acquisition_dialog_new
+gnome_scan_acquisition_dialog_run
+<SUBSECTION Standard>
+GNOME_SCAN_ACQUISITION_DIALOG
+GNOME_IS_SCAN_ACQUISITION_DIALOG
+GNOME_TYPE_SCAN_ACQUISITION_DIALOG
+gnome_scan_acquisition_dialog_get_type
+GNOME_SCAN_ACQUISITION_DIALOG_CLASS
+GNOME_IS_SCAN_ACQUISITION_DIALOG_CLASS
+GNOME_SCAN_ACQUISITION_DIALOG_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-types</FILE>
+<SUBSECTION Standard>
+GNOME_TYPE_SCANNER_STATUS
+GNOME_TYPE_SCAN_UNIT
+gnome_scanner_status_get_type
+gs_param_unit_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-init</FILE>
+gnome_scan_init
+gnome_scan_exit
+<SUBSECTION Standard>
+GS_STOCK_SCAN
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-preview-plugin-area</FILE>
+GNOME_TYPE_SCAN_PREVIEW_PLUGIN_AREA
+GNOME_SCAN_PREVIEW_PLUGIN_AREA
+GnomeScanPreviewPluginArea
+gnome_scan_preview_plugin_area_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>head-comment</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>gnome-scan-utils</FILE>
+GS_DEFINE_QUARK
+gnome_scan_format_new
+GnomeScanFormat
+GnomeScanUnit
+<SUBSECTION Private>
+MM_PER_INCH
+gs_convert
+gs_convert_to_mm
+gs_convert_from_mm
+gs_rectangle_convert
+gs_rectangle_convert_to_mm
+gs_rectangle_convert_from_mm
+</SECTION>
+
Modified: trunk/doc/ref/gnome-scan-1.0.types
==============================================================================
--- trunk/doc/ref/gnome-scan-1.0.types (original)
+++ trunk/doc/ref/gnome-scan-1.0.types Tue Feb 26 22:27:14 2008
@@ -1,12 +1,17 @@
+gnome_scan_backend_get_type
+gnome_scan_module_get_type
+gnome_scan_module_manager_get_type
gnome_scan_settings_get_type
gnome_scan_plugin_get_type
gnome_scanner_get_type
gnome_scan_sink_get_type
-gnome_scan_backend_get_type
+gnome_scan_preview_sink_get_type
+gnome_scan_processor_common_get_type
gnome_scan_job_get_type
gnome_scan_acquisition_dialog_get_type
gnome_scan_preview_area_get_type
gnome_scan_dialog_get_type
gnome_scan_param_widget_get_type
-gnome_scan_module_get_type
-gnome_scan_module_manager_get_type
+gnome_scan_preview_plugin_get_type
+gnome_scan_preview_plugin_rotation_get_type
+gnome_scan_preview_plugin_area_get_type
Modified: trunk/lib/gnome-scan-acquisition-dialog.c
==============================================================================
--- trunk/lib/gnome-scan-acquisition-dialog.c (original)
+++ trunk/lib/gnome-scan-acquisition-dialog.c Tue Feb 26 22:27:14 2008
@@ -22,6 +22,7 @@
/**
* SECTION: gnome-scan-acquisition-dialog
* @short_description: Give the user the acquisition control
+ * @include: gnome-scan.h
*
* The acquisition process might be long, the
* #GnomeScanAcquisitionDialog primarily shows a progress bar and of
Modified: trunk/lib/gnome-scan-backend.c
==============================================================================
--- trunk/lib/gnome-scan-backend.c (original)
+++ trunk/lib/gnome-scan-backend.c Tue Feb 26 22:27:14 2008
@@ -241,7 +241,7 @@
* gnome_scan_backend_probe_done:
* @backend: a #GnomeScanBackend
*
- * Trigger #GnomeScanBackend::probe-done signal. Use by child class.
+ * Trigger #GnomeScanBackend::probe-done signal. Used by child class.
**/
void
gnome_scan_backend_probe_done (GnomeScanBackend *backend)
Modified: trunk/lib/gnome-scan-dialog.c
==============================================================================
--- trunk/lib/gnome-scan-dialog.c (original)
+++ trunk/lib/gnome-scan-dialog.c Tue Feb 26 22:27:14 2008
@@ -22,6 +22,7 @@
/**
* SECTION: gnome-scan-dialog
* @short_description: Scan configuration dialog
+ * @include: gnome-scan.h
*
* The goal of the #GnomeScanDialog is to allow the user to configure
* a #GnomeScanJob, and trigger the execution of this job by running a
Modified: trunk/lib/gnome-scan-init.c
==============================================================================
--- trunk/lib/gnome-scan-init.c (original)
+++ trunk/lib/gnome-scan-init.c Tue Feb 26 22:27:14 2008
@@ -19,8 +19,9 @@
/**
* SECTION: gnome-scan-init
- * @title: Init and loading
+ * @title: Init and loading
* @short_description: Module loading and various registration
+ * @include: gnome-scan.h
*/
#ifdef HAVE_CONFIG_H
@@ -37,11 +38,11 @@
static GtkIconFactory *factory = NULL;
static GtkStockItem items[] = {
- { GS_STOCK_SCAN,
- N_("_Scan"),
- 0, /* modifier */
- 0, /* keyval */
- GETTEXT_PACKAGE }
+ { GS_STOCK_SCAN,
+ N_("_Scan"),
+ 0, /* modifier */
+ 0, /* keyval */
+ GETTEXT_PACKAGE }
};
/**
@@ -56,65 +57,73 @@
void
gnome_scan_init (gint *argc, gchar ***argv)
{
- g_debug ("Initializing %s for %s (%s)",
- PACKAGE_STRING,
- g_get_application_name(),
- g_get_prgname());
- gchar *path;
- guint i, n_items;
- n_items = G_N_ELEMENTS (items);
- GtkIconSet *set;
- GtkIconSource *source;
- gchar* filename;
-
- gegl_init (argc, argv);
-
- /* load modules */
- path = g_strjoin (G_SEARCHPATH_SEPARATOR_S,
- MODULE_DIR, "modules", "../modules", NULL);
-
- module_manager = gnome_scan_module_manager_new (path);
- gnome_scan_module_manager_query_modules (module_manager);
-
- /* init i18n */
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-
- /* add stock items */
- gtk_stock_add_static (items, n_items);
-
- factory = gtk_icon_factory_new ();
- for (i = 0; i < n_items; i++) {
- set = gtk_icon_set_new ();
- filename = g_build_filename (ICON_DIR,
- "scalable",
- "actions",
- g_strconcat (items[i].stock_id, ".svg", NULL),
- NULL);
- source = gtk_icon_source_new ();
- gtk_icon_source_set_icon_name (source, items[i].stock_id);
-/* gtk_icon_source_set_filename (source, filename); */
- gtk_icon_source_set_direction_wildcarded (source, TRUE);
- gtk_icon_source_set_size_wildcarded (source, TRUE);
- gtk_icon_source_set_state_wildcarded (source, TRUE);
- gtk_icon_set_add_source (set, source);
- gtk_icon_source_free (source);
- gtk_icon_factory_add (factory,
- items[i].stock_id,
- set);
- gtk_icon_set_unref (set);
- }
- gtk_icon_factory_add_default (factory);
+ g_debug ("Initializing %s for %s (%s)",
+ PACKAGE_STRING,
+ g_get_application_name(),
+ g_get_prgname());
+ gchar *path;
+ guint i, n_items;
+ n_items = G_N_ELEMENTS (items);
+ GtkIconSet *set;
+ GtkIconSource *source;
+ gchar* filename;
+
+ gegl_init (argc, argv);
+
+ /* load modules */
+ path = g_strjoin (G_SEARCHPATH_SEPARATOR_S,
+ MODULE_DIR, "modules", "../modules", NULL);
+
+ module_manager = gnome_scan_module_manager_new (path);
+ gnome_scan_module_manager_query_modules (module_manager);
+
+ /* init i18n */
+ bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+
+ /* add stock items */
+ gtk_stock_add_static (items, n_items);
+
+ factory = gtk_icon_factory_new ();
+ for (i = 0; i < n_items; i++) {
+ set = gtk_icon_set_new ();
+ filename = g_build_filename (ICON_DIR,
+ "scalable",
+ "actions",
+ g_strconcat (items[i].stock_id,
+ ".svg", NULL),
+ NULL);
+ source = gtk_icon_source_new ();
+ gtk_icon_source_set_icon_name (source, items[i].stock_id);
+ gtk_icon_source_set_direction_wildcarded (source, TRUE);
+ gtk_icon_source_set_size_wildcarded (source, TRUE);
+ gtk_icon_source_set_state_wildcarded (source, TRUE);
+ gtk_icon_set_add_source (set, source);
+ gtk_icon_source_free (source);
+ gtk_icon_factory_add (factory,
+ items[i].stock_id,
+ set);
+ gtk_icon_set_unref (set);
+ }
+ gtk_icon_factory_add_default (factory);
- gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
- ICON_DIR);
+ gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
+ ICON_DIR);
}
+/**
+ * gnome_scan_exit:
+ *
+ * This function should be called once you're finished with gnome
+ * scan. It will unload modules, remove stock icons, exit
+ * dependencies, etc.
+ **/
void
-gnome_scan_exit (void)
+gnome_scan_exit ()
{
- gtk_icon_factory_remove_default (factory);
- g_object_unref (factory);
- gegl_exit ();
- gnome_scan_module_manager_unload_modules (module_manager);
+ gtk_icon_factory_remove_default (factory);
+ g_object_unref (factory);
+ gegl_exit ();
+ gnome_scan_module_manager_unload_modules (module_manager);
}
+
Modified: trunk/lib/gnome-scan-init.h
==============================================================================
--- trunk/lib/gnome-scan-init.h (original)
+++ trunk/lib/gnome-scan-init.h Tue Feb 26 22:27:14 2008
@@ -21,6 +21,9 @@
#include <glib-object.h>
+/**
+ * Stock item for scan action.
+ **/
#define GS_STOCK_SCAN "scan"
G_BEGIN_DECLS
Modified: trunk/lib/gnome-scan-job.c
==============================================================================
--- trunk/lib/gnome-scan-job.c (original)
+++ trunk/lib/gnome-scan-job.c Tue Feb 26 22:27:14 2008
@@ -295,7 +295,11 @@
}
/**
+ * gnome_scan_job_add_processor:
+ * @job: a #GnomeScanJob
+ * @processor: a #GnomeScanPlugin
*
+ * Add @processor as plugin for building the pipeline.
**/
void
gnome_scan_job_add_processor (GnomeScanJob *job,
@@ -305,6 +309,12 @@
priv->processors = g_slist_append(priv->processors, processor);
}
+/**
+ * gnome_scan_job_get_processors:
+ * @job: a #GnomeScanJob
+ *
+ * Returns: the list of processors
+ */
GSList*
gnome_scan_job_get_processors (GnomeScanJob *job)
{
@@ -344,6 +354,14 @@
return GET_PRIVATE (job)->sink;
}
+/**
+ * gnome_scan_job_configure:
+ * @job: a #GnomeScanJob
+ *
+ * Must be called before running @job. This will ask @job plugins to
+ * read their settings from :settings in order to bear ready for
+ * processing images.
+ **/
void
gnome_scan_job_configure (GnomeScanJob *job)
{
@@ -430,7 +448,7 @@
* you should never use this function directly and use
* #GnomeScanAcquisitionDialog instead.
*
- * See: #GnomeScanAcquisitionDialog or g_thread_create()
+ * See: gnome_scan_job_run_once(), #GnomeScanAcquisitionDialog or g_thread_create()
**/
void
gnome_scan_job_run (GnomeScanJob *job)
@@ -453,6 +471,13 @@
job->done = TRUE;
}
+/**
+ * gnome_scan_job_run_once:
+ * @job: a #GnomeScanJob
+ *
+ * Acquire one image and process it, updated job progress, stage,
+ * etc. Can be stop at any time using gnome_scan_job_cancel().
+ **/
gboolean
gnome_scan_job_run_once (GnomeScanJob *job)
{
@@ -530,7 +555,8 @@
* gnome_scan_job_cancel:
* @job: a running #GnomeScanJob
*
- * Ask the job to stop.
+ * Ask the job to stop. The function returns immediatly, however the
+ * job will actually stop as soon as possible.
**/
void
gnome_scan_job_cancel (GnomeScanJob *job)
Modified: trunk/lib/gnome-scan-param-specs.c
==============================================================================
--- trunk/lib/gnome-scan-param-specs.c (original)
+++ trunk/lib/gnome-scan-param-specs.c Tue Feb 26 22:27:14 2008
@@ -23,6 +23,7 @@
* SECTION: gnome-scan-param-specs
* @title: Parameter Specification
* @short_description: Custom plugin parameter type
+ * @include: gnome-scan.h
*
* Instead of using a all-in-one option object (like in Gnome Scan
* 0.4), Gnome Scan now use regular #GParamSpecs. Gnome Scan
@@ -35,6 +36,12 @@
* Also, #GSParamSpecs are much more high-level than it's parent
* #GParamSpec in order to build complex param widgets (range, area,
* paper-size, â).
+ *
+ * Current implementation makes a heavy use of
+ * g_param_spec_set_qdata(), because #GParamSpec is a shallow
+ * type. Future implementation might break thing for either creating
+ * its own #GSParamSpec fundamental type or simply using a common
+ * struct right after the @parent_instance field.
**/
#include <glib/gi18n.h>
@@ -66,7 +73,21 @@
/* Common */
-GnomeScanFormat* gnome_scan_format_new (gchar *name, gchar *domain, gchar *description, gchar **mime_types, gchar **extensions)
+/**
+ * gnome_scan_format_new:
+ * @name: format name
+ * @domain: translation domain
+ * @description:description
+ * @mime_types: list of mime types for this format
+ * @extensions: list of suffixes for file of this format.
+ *
+ * Returns: a new #GnomeScanFormat
+ **/
+GnomeScanFormat* gnome_scan_format_new (gchar *name,
+ gchar *domain,
+ gchar *description,
+ gchar **mime_types,
+ gchar **extensions)
{
GnomeScanFormat *format = g_new0 (GnomeScanFormat, 1);
format->name = name;
@@ -92,12 +113,28 @@
return (GQuark) g_param_spec_get_qdata (spec, GS_PARAM_GROUP_QUARK);
}
+/**
+ * gs_param_spec_get_group_string:
+ * @spec: The #GSParamSpec
+ *
+ * Retrieve the @spec group string. Since the @group is not store in a
+ * struct, but using qdata, just cast @spec to #GParamSpec. The string
+ * is not translated.
+ *
+ * See: gs_param_spec_get_group()
+ * Returns: @spec group's quark
+ **/
const gchar*
gs_param_spec_get_group_string (GParamSpec *spec)
{
return g_quark_to_string (gs_param_spec_get_group (spec));
}
+/**
+ * gs_param_spec_set_group:
+ * @spec: a #GSParamSpec
+ * @group: new @spec group's #GQuark.
+ **/
void
gs_param_spec_set_group (GParamSpec *spec, GQuark group)
{
@@ -105,6 +142,11 @@
g_param_spec_set_qdata (spec, GS_PARAM_GROUP_QUARK, (gpointer) group);
}
+/**
+ * gs_param_spec_set_group_from_string:
+ * @spec: a #GSParamSpec
+ * @group: new @spec group name
+ **/
void
gs_param_spec_set_group_from_string (GParamSpec *spec, const gchar *group)
{
@@ -112,36 +154,72 @@
}
+/**
+ * gs_param_spec_set_domain:
+ * @spec: a #GSParamSpec
+ * @domain: @domain for translating @spec @nick and @blurb
+ *
+ **/
void
-gs_param_spec_set_domain (GParamSpec *spec, const gchar *domain)
+gs_param_spec_set_domain (GParamSpec *spec, const gchar *domain)
{
g_param_spec_set_qdata (spec, GS_PARAM_DOMAIN_QUARK, (gpointer) domain);
}
+/**
+ * gs_param_spec_get_domain:
+ * @spec: a #GSParamSpec
+ *
+ **/
const gchar*
-gs_param_spec_get_domain (GParamSpec *spec)
+gs_param_spec_get_domain (GParamSpec *spec)
{
return g_param_spec_get_qdata (spec, GS_PARAM_DOMAIN_QUARK);
}
+/**
+ * gs_param_spec_set_unit:
+ * @spec: a #GSParamSpec
+ * @unit: #GnomeScanUnit fo @spec
+ *
+ * Parameter unit is specified for UI, but can also be need for
+ * e.g. length of scan ROI where unit translation might occur.
+ **/
void
gs_param_spec_set_unit (GParamSpec *spec, GnomeScanUnit unit)
{
g_param_spec_set_qdata (spec, GS_PARAM_UNIT_QUARK, (gpointer) unit);
}
+/**
+ * gs_param_spec_get_unit:
+ * @spec: a #GSParamSpec
+ *
+ * Returns: a #GnomeScanUnit
+ **/
GnomeScanUnit
gs_param_spec_get_unit (GParamSpec *spec)
{
return (GnomeScanUnit) g_param_spec_get_qdata (spec, GS_PARAM_UNIT_QUARK);
}
+/**
+ * gs_param_spec_set_index:
+ * @spec: a #GSParamSpec
+ * @index: new @spec'index
+ **/
void
gs_param_spec_set_index (GParamSpec *spec, guint index)
{
g_param_spec_set_qdata (spec, GS_PARAM_INDEX_QUARK, (gpointer) index);
}
+/**
+ * gs_param_spec_get_index:
+ * @spec: a #GSParamSpec
+ *
+ * Returns: an integer.
+ **/
guint
gs_param_spec_get_index (GParamSpec *spec)
{
@@ -150,30 +228,72 @@
+/**
+ * gs_param_spec_set_widget_type:
+ * @spec: a #GSParamSpec
+ * @type: a widget #GType
+ *
+ * This part is the only bound from backend to frontend. It might be
+ * removed later. The idea is to have widget per param, not per type.
+ **/
void
gs_param_spec_set_widget_type (GParamSpec *spec, GType type)
{
g_param_spec_set_qdata (spec, GS_PARAM_WIDGET_TYPE_QUARK, (gpointer) type);
}
+/**
+ * gs_param_spec_get_widget_type:
+ * @spec: a #GSParamSpec
+ *
+ * Returns: a #GType
+ **/
GType
gs_param_spec_get_widget_type (GParamSpec *spec)
{
return (GType) g_param_spec_get_qdata (spec, GS_PARAM_WIDGET_TYPE_QUARK);
}
+/**
+ * gs_param_spec_cmp_index:
+ * @a: a #GSParamSpec
+ * @b: another #GSParamSpec
+ *
+ * Compare two #GSParamSpec by index.
+ *
+ * Returns: an integer nagtive if a is previous to b else positive.
+ **/
gint
gs_param_spec_cmp_index (GParamSpec*a, GParamSpec *b)
{
return gs_param_spec_get_index (a) - gs_param_spec_get_index (b);
}
+/**
+ * gs_param_spec_cmp_name:
+ * @a: a #GSParamSpec
+ * @b: another #GSParamSpec
+ *
+ * Compare two #GSParamSpec by name.
+ *
+ * Returns: a nagtive integer if a is previous to b else a positive integer.
+ **/
gint
gs_param_spec_cmp_name (GParamSpec*a, GParamSpec *b)
{
return g_ascii_strcasecmp (g_param_spec_get_name (a), g_param_spec_get_name (b));
}
+/**
+ * gs_param_values_cmp:
+ * @pspec: a #GSParamSpec
+ * @a: a #GSParamSpec
+ * @b: another #GSParamSpec
+ *
+ * Compare two value of type determined by @pspec.
+ *
+ * Returns: a negative integer if a < b, else a positive integer.
+ **/
gint
gs_param_values_cmp (GParamSpec *pspec, GValue *a, GValue *b)
{
@@ -183,7 +303,21 @@
}
-
+/**
+ * gs_param_spec_boolean:
+ * @name: param name
+ * @nick: param nickname
+ * @blurb: description of the parameter
+ * @group: param group quark
+ * @default_value: default value
+ * @flags: Flags
+ *
+ * Create a new #GSParamSpec of for boolean value. @name is for use
+ * internally (e.g. gconf key) while nick and @blurb should be marked
+ * for translation.
+ *
+ * Returns: a new #GSParamSpec
+ **/
GParamSpec*
gs_param_spec_boolean (const gchar *name,
const gchar *nick,
@@ -199,6 +333,23 @@
return spec;
}
+/**
+ * gs_param_spec_int:
+ * @name: param name
+ * @nick: param nickname
+ * @blurb: description of the parameter
+ * @group: param group quark
+ * @minimum: minimum value
+ * @maximum: maximum value
+ * @default_value: default value
+ * @flags: Flags
+ *
+ * Create a new #GSParamSpec of for integer value. @name is for use
+ * internally (e.g. gconf key) while nick and @blurb should be marked
+ * for translation.
+ *
+ * Returns: a new #GSParamSpec
+ **/
GParamSpec*
gs_param_spec_int (const gchar *name,
const gchar *nick,
@@ -217,6 +368,23 @@
return spec;
}
+/**
+ * gs_param_spec_double:
+ * @name: param name
+ * @nick: param nickname
+ * @blurb: description of the parameter
+ * @group: param group quark
+ * @minimum: minimum value
+ * @maximum: maximum value
+ * @default_value: default value
+ * @flags: Flags
+ *
+ * Create a new #GSParamSpec of for double value. @name is for use
+ * internally (e.g. gconf key) while nick and @blurb should be marked
+ * for translation.
+ *
+ * Returns: a new #GSParamSpec
+ **/
GParamSpec*
gs_param_spec_double (const gchar *name,
const gchar *nick,
@@ -235,6 +403,21 @@
return spec;
}
+/**
+ * gs_param_spec_string:
+ * @name: param name
+ * @nick: param nickname
+ * @blurb: description of the parameter
+ * @group: param group quark
+ * @default_value: default value
+ * @flags: Flags
+ *
+ * Create a new #GSParamSpec of for string value. @name is for use
+ * internally (e.g. gconf key) while nick and @blurb should be marked
+ * for translation.
+ *
+ * Returns: a new #GSParamSpec
+ **/
GParamSpec*
gs_param_spec_string (const gchar *name,
const gchar *nick,
@@ -250,6 +433,24 @@
return spec;
}
+/**
+ * gs_param_spec_pointer:
+ * @name: param name
+ * @nick: param nickname
+ * @blurb: description of the parameter
+ * @group: param group quark
+ * @widget: widget type
+ * @flags: Flags
+ *
+ * Create a new #GSParamSpec of for boolean value. @name is for use
+ * internally (e.g. gconf key) while nick and @blurb should be marked
+ * for translation.
+ *
+ * Other #GSParamSpec have predefined widget type. Pointer spec allow
+ * to store alsmost everything and thus needs specific widget type.
+ *
+ * Returns: a new #GSParamSpec
+ **/
GParamSpec*
gs_param_spec_pointer (const gchar *name,
const gchar *nick,
@@ -270,13 +471,18 @@
/**
* gs_param_spec_range:
- * @name: spec name
- * @nick: spec nick
- * @blurb: spec blurb
- * @group: The quark of the group the param belong to
- * @flags: Param flags.
+ * @name: spec name
+ * @nick: spec nick
+ * @blurb: spec blurb
+ * @group: The quark of the group the param belong to
+ * @minimum: value of the lowest allowed value
+ * @maximum: value of the highed allowed value
+ * @step: lenght between two values
+ * @flags: Param flags.
*
- * Create a new #GSParamSpecRange .
+ * Create a new #GSParamSpecRange. This spec has been designed to
+ * store both integer and float value. Ensure all #GValue have the
+ * same type.
*
* Returns: the new #GSParamSpecRange
**/
@@ -359,13 +565,16 @@
/**
* gs_param_spec_enum:
- * @name: spec name
- * @nick: spec nick
- * @blurb: spec blurb
- * @group: The quark of the group the param belong to
- * @flags: Param flags.
+ * @name: spec name
+ * @nick: spec nick
+ * @blurb: spec blurb
+ * @group: The quark of the group the param belong to
+ * @values: Allowed values
+ * @default_value: default value;
+ * @flags: Param flags.
*
- * Create a new #GSParamSpecEnum .
+ * Create a new #GSParamSpecEnum . This parameter spec has been
+ * designed to handle integer, float and string value.
*
* Returns: the new #GSParamSpecEnum
**/
@@ -424,6 +633,22 @@
/* PAPER_SIZE */
GS_DEFINE_PARAM (gs, GS, paper_size, PaperSize, GTK_TYPE_PAPER_SIZE);
+/**
+ * gs_param_spec_paper_size:
+ * @name: param name
+ * @nick: param nickname
+ * @blurb: description of the parameter
+ * @group: param group quark
+ * @default_ps: default paper size
+ * @enumeration: available paper size
+ * @flags: Flags
+ *
+ * Create a new #GSParamSpec of for #GtkPaperSize value. @name is for use
+ * internally (e.g. gconf key) while nick and @blurb should be marked
+ * for translation.
+ *
+ * Returns: a new #GSParamSpec
+ **/
GParamSpec*
gs_param_spec_paper_size (const gchar *name,
const gchar *nick,
@@ -489,6 +714,21 @@
/* PAGE_ORIENTATION */
GS_DEFINE_PARAM (gs, GS, page_orientation, PageOrientation, GTK_TYPE_PAGE_ORIENTATION);
+/**
+ * gs_param_spec_page_orientation:
+ * @name: param name
+ * @nick: param nickname
+ * @blurb: description of the parameter
+ * @group: param group quark
+ * @default_value: default value
+ * @flags: Flags
+ *
+ * Create a new #GSParamSpec of for #GtkPageOrientation value. @name is for use
+ * internally (e.g. gconf key) while nick and @blurb should be marked
+ * for translation.
+ *
+ * Returns: a new #GSParamSpec
+ **/
GParamSpec*
gs_param_spec_page_orientation (const gchar *name,
const gchar *nick,
Modified: trunk/lib/gnome-scan-param-specs.h
==============================================================================
--- trunk/lib/gnome-scan-param-specs.h (original)
+++ trunk/lib/gnome-scan-param-specs.h Tue Feb 26 22:27:14 2008
@@ -101,10 +101,41 @@
GQuark gs_widget_type_quark (void) G_GNUC_CONST;
GQuark gs_formats_quark (void) G_GNUC_CONST;
+/**
+ * GS_PARAM_GROUP_SCANNER_FRONT:
+ *
+ * Scanner option group for not every user
+ **/
#define GS_PARAM_GROUP_SCANNER_FRONT (gs_scanner_front_quark ())
+
+/**
+ * GS_PARAM_GROUP_SCANNER_FORMAT:
+ *
+ * Scanner option group for selecting paper format (paper size,
+ * orientation, etc.)
+ **/
#define GS_PARAM_GROUP_FORMAT (gs_format_quark ())
+
+/**
+ * GS_PARAM_GROUP_SCANNER_FRONT:
+ *
+ * Scanner option group for not every user
+ **/
#define GS_PARAM_GROUP_SINK_FRONT (gs_sink_front_quark ())
+
+/**
+ * GS_PARAM_GROUP_PREVIEW:
+ *
+ * Scanner option group for preview page. Option that's needs instant
+ * view of the effect of selecting them
+ **/
#define GS_PARAM_GROUP_PREVIEW (gs_preview_quark())
+
+/**
+ * GS_PARAM_GROUP_HIDDEN:
+ *
+ * Scanner option group not shown to user
+ **/
#define GS_PARAM_GROUP_HIDDEN (gs_hidden_quark())
GQuark gs_scanner_front_quark (void) G_GNUC_CONST;
Modified: trunk/lib/gnome-scan-param-widget.c
==============================================================================
--- trunk/lib/gnome-scan-param-widget.c (original)
+++ trunk/lib/gnome-scan-param-widget.c Tue Feb 26 22:27:14 2008
@@ -269,12 +269,14 @@
/**
* gnome_scan_param_widget_new:
- * @pspec: a #GParamSpec
+ * @settings: The #GnomeScanSettings where to store values
+ * @plugin: The #GnomeScanPlugin to configure
+ * @pspec: The #GParamSpec to be managed
+ *
+ * Build a new #GnomeScanParamWidget from @pspec
+ * widget_type. Initialize settings with @pspec default value if
+ * needed.
*
- * Convenient constructor that retrieve default value from @pspec and
- * pass it to gnome_scan_param_widget_new_with_value().
- *
- * See: gnome_scan_param_widget_new_with_value()
* Returns: The new #GnomeScanParamWidget
**/
GtkWidget*
@@ -379,20 +381,29 @@
}
+/**
+ * gnome_scan_param_widget_changed:
+ * @widget: a #GnomeScanParamWidget
+ *
+ * Trigger changed signal, as if user have touched the GUI.
+ **/
void
-gnome_scan_param_widget_changed (GnomeScanParamWidget *gspw)
+gnome_scan_param_widget_changed (GnomeScanParamWidget *widget)
{
- GnomeScanParamWidgetPrivate *priv = GET_PRIVATE (gspw);
+ GnomeScanParamWidgetPrivate *priv = GET_PRIVATE (widget);
if (priv->propagate) {
- gnome_scan_settings_set (gspw->settings,
- g_param_spec_get_name (gspw->pspec),
- gspw->value);
- gnome_scan_plugin_configure (gspw->plugin, gspw->settings);
+ gnome_scan_settings_set (widget->settings,
+ g_param_spec_get_name (widget->pspec),
+ widget->value);
+ gnome_scan_plugin_configure (widget->plugin, widget->settings);
}
}
+/* INTERNAL */
void
-gspw_settings_changed (GnomeScanSettings *settings, gchar *key, GnomeScanParamWidget *gspw)
+gspw_settings_changed (GnomeScanSettings *settings,
+ gchar *key,
+ GnomeScanParamWidget *gspw)
{
GnomeScanParamWidgetClass *klass = GNOME_SCAN_PARAM_WIDGET_GET_CLASS (gspw);
GnomeScanParamWidgetPrivate *priv = GET_PRIVATE (gspw);
Modified: trunk/lib/gnome-scan-param-widget.h
==============================================================================
--- trunk/lib/gnome-scan-param-widget.h (original)
+++ trunk/lib/gnome-scan-param-widget.h Tue Feb 26 22:27:14 2008
@@ -36,6 +36,14 @@
#define GNOME_IS_SCAN_PARAM_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_TYPE_SCAN_PARAM_WIDGET))
#define GNOME_SCAN_PARAM_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNOME_TYPE_SCAN_PARAM_WIDGET, GnomeScanParamWidgetClass))
+/**
+ * GS_DEFINE_PARAM_WIDGET:
+ * @TypeName: class name
+ * @type_name: function prefix
+ *
+ * Generate all boiler plate code for creating a new #GnomeScanParamWidget
+ * derived class.
+ **/
#define GS_DEFINE_PARAM_WIDGET(TypeName, type_name) \
G_DEFINE_TYPE(TypeName, type_name, GNOME_TYPE_SCAN_PARAM_WIDGET) \
\
@@ -51,7 +59,15 @@
parent_class->set = type_name##_set; \
object_class->finalize = type_name##_finalize; \
}
-
+
+/**
+ * GS_DEFINE_PARAM_WIDGET_HEADER:
+ * @TypeName: class name
+ * @type_name: function prefix
+ *
+ * Generate all boiler plate header declaration for creating a new
+ * #GnomeScanParamWidget derived class.
+ **/
#define GS_DEFINE_PARAM_WIDGET_HEADER(TypeName, type_name) \
typedef struct _##TypeName##Class TypeName##Class; \
\
Modified: trunk/lib/gnome-scan-plugin.c
==============================================================================
--- trunk/lib/gnome-scan-plugin.c (original)
+++ trunk/lib/gnome-scan-plugin.c Tue Feb 26 22:27:14 2008
@@ -22,15 +22,14 @@
/**
* SECTION: gnome-scan-plugin
* @short_description: Scan operation plugin
+ * @include: gnome-scan.h
*
- * A #GnomeScanPlugin add a features to Gnome Scan. A plugin never
- * extends directly #GnomeScanPlugin. Instead, you should see
- * #GnomeScanner and #GnomeScanSink. Basically, a plugin handle common
- * properties such as @name, @blurb and @params. Each plugins as a per
- * instance list of params.
- *
- * In the future, #GnomeScanPlugin should be drop in favor of
- * #GeglOperation.
+ * A #GnomeScanPlugin extends the processing pipeline. Only processing
+ * plugin derive directly #GnomeScanPlugin. Source and Sink must
+ * derive from #GnomeScanner and #GnomeScanSink. Basically, a plugin
+ * handle common properties such as @name, @blurb and @params. Each
+ * plugins as a per instance list of params. Those params are exposed
+ * to the UI and save in #GnomeScanSettings.
**/
#include "gnome-scan-plugin.h"
@@ -42,23 +41,23 @@
struct _GnomeScanPluginPrivate
{
- gchar* name;
- gchar* blurb;
+ gchar* name;
+ gchar* blurb;
};
enum
- {
- PROP_0,
- PROP_NAME,
- PROP_BLURB,
- PROP_PARAMS
- };
+{
+ PROP_0,
+ PROP_NAME,
+ PROP_BLURB,
+ PROP_PARAMS
+};
enum
- {
- PARAMS_CHANGED,
- LAST_SIGNAL
- };
+{
+ PARAMS_CHANGED,
+ LAST_SIGNAL
+};
static GObjectClass* parent_class = NULL;
static guint signals[LAST_SIGNAL] = { 0 };
@@ -68,121 +67,123 @@
static void
gnome_scan_plugin_init (GnomeScanPlugin *object)
{
- object->params = g_param_spec_pool_new (FALSE);
+ object->params = g_param_spec_pool_new (FALSE);
}
static void
gnome_scan_plugin_finalize (GObject *object)
{
- /* TODO: Add deinitalization code here */
+ /* TODO: Add deinitalization code here */
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void
gnome_scan_plugin_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
- g_return_if_fail (GNOME_IS_SCAN_PLUGIN (object));
+ g_return_if_fail (GNOME_IS_SCAN_PLUGIN (object));
- switch (prop_id)
- {
- case PROP_NAME:
- GET_PRIVATE (object)->name = g_value_dup_string (value);
- break;
- case PROP_BLURB:
- GET_PRIVATE (object)->blurb = g_value_dup_string (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ switch (prop_id)
+ {
+ case PROP_NAME:
+ GET_PRIVATE (object)->name = g_value_dup_string (value);
+ break;
+ case PROP_BLURB:
+ GET_PRIVATE (object)->blurb = g_value_dup_string (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
static void
gnome_scan_plugin_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
{
- g_return_if_fail (GNOME_IS_SCAN_PLUGIN (object));
+ g_return_if_fail (GNOME_IS_SCAN_PLUGIN (object));
- switch (prop_id)
- {
- case PROP_NAME:
- g_value_set_string (value, gnome_scan_plugin_get_name (GNOME_SCAN_PLUGIN (object)));
- break;
- case PROP_BLURB:
- g_value_set_string (value, GET_PRIVATE (object)->blurb);
- break;
- case PROP_PARAMS:
- g_value_set_pointer (value, GNOME_SCAN_PLUGIN (object)->params);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ switch (prop_id)
+ {
+ case PROP_NAME:
+ g_value_set_string (value, gnome_scan_plugin_get_name (GNOME_SCAN_PLUGIN (object)));
+ break;
+ case PROP_BLURB:
+ g_value_set_string (value, GET_PRIVATE (object)->blurb);
+ break;
+ case PROP_PARAMS:
+ g_value_set_pointer (value, GNOME_SCAN_PLUGIN (object)->params);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
static void
gnome_scan_plugin_class_init (GnomeScanPluginClass *klass)
{
- GObjectClass* object_class = G_OBJECT_CLASS (klass);
- parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
+ GObjectClass* object_class = G_OBJECT_CLASS (klass);
+ parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
- g_type_class_add_private (klass, sizeof (GnomeScanPluginPrivate));
- object_class->finalize = gnome_scan_plugin_finalize;
- object_class->set_property = gnome_scan_plugin_set_property;
- object_class->get_property = gnome_scan_plugin_get_property;
-
- /**
- * GnomeScanPlugin:name:
- *
- * The plugin public name.
- **/
- g_object_class_install_property (object_class,
- PROP_NAME,
- g_param_spec_string ("name",
- "Name",
- "Plugin public name",
- NULL,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GnomeScanPlugin:blurb:
- *
- * The plugin public blurb.
- **/
- g_object_class_install_property (object_class,
- PROP_BLURB,
- g_param_spec_string ("blurb",
- "Blurb",
- "Plugin public description.",
- NULL,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GnomeScanPlugin:params:
- *
- * The list of per instance #GSParamSpec.
- **/
- g_object_class_install_property (object_class,
- PROP_PARAMS,
- g_param_spec_pointer ("params",
- "Parameters",
- "Pool of plugin parameters specification.",
- G_PARAM_READABLE));
-
- /**
- * GnomeScanPlugin::changed:
- * @plugin: the emitting #GnomeScanPlugin
- *
- * Triggered when the instance parameters list has changed.
- **/
- signals[PARAMS_CHANGED] =
- g_signal_new ("params-changed",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GnomeScanPluginClass, changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE, 1, G_TYPE_POINTER);
+ g_type_class_add_private (klass, sizeof (GnomeScanPluginPrivate));
+ object_class->finalize = gnome_scan_plugin_finalize;
+ object_class->set_property = gnome_scan_plugin_set_property;
+ object_class->get_property = gnome_scan_plugin_get_property;
+
+ /**
+ * GnomeScanPlugin:name:
+ *
+ * The plugin public name.
+ **/
+ g_object_class_install_property (object_class,
+ PROP_NAME,
+ g_param_spec_string ("name",
+ "Name",
+ "Plugin public name",
+ NULL,
+ G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+
+ /**
+ * GnomeScanPlugin:blurb:
+ *
+ * The plugin public blurb.
+ **/
+ g_object_class_install_property (object_class,
+ PROP_BLURB,
+ g_param_spec_string ("blurb",
+ "Blurb",
+ "Plugin public description.",
+ NULL,
+ G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+
+ /**
+ * GnomeScanPlugin:params:
+ *
+ * The list of per instance #GSParamSpec.
+ **/
+ g_object_class_install_property (object_class,
+ PROP_PARAMS,
+ g_param_spec_pointer ("params",
+ "Parameters",
+ "Pool of plugin parameters specification.",
+ G_PARAM_READABLE));
+
+ /**
+ * GnomeScanPlugin::params-changed:
+ * @plugin: the emitting #GnomeScanPlugin
+ * @spec: the spec of the changed parameter
+ *
+ * Triggered when one param of plugin has been added, changed,
+ * removed. Needs to be renamed to param-changed.
+ **/
+ signals[PARAMS_CHANGED] =
+ g_signal_new ("params-changed",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GnomeScanPluginClass, changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE, 1, G_TYPE_POINTER);
}
@@ -195,8 +196,8 @@
gchar*
gnome_scan_plugin_get_name (GnomeScanPlugin *plugin)
{
- g_return_val_if_fail (GNOME_IS_SCAN_PLUGIN (plugin), NULL);
- return g_strdup (GET_PRIVATE (plugin)->name);
+ g_return_val_if_fail (GNOME_IS_SCAN_PLUGIN (plugin), NULL);
+ return g_strdup (GET_PRIVATE (plugin)->name);
}
/**
@@ -209,9 +210,9 @@
void
gnome_scan_plugin_params_add (GnomeScanPlugin *plugin, GParamSpec *param)
{
- g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin));
- g_param_spec_pool_insert (plugin->params, param, G_OBJECT_TYPE (plugin));
- gnome_scan_plugin_params_changed (plugin, param);
+ g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin));
+ g_param_spec_pool_insert (plugin->params, param, G_OBJECT_TYPE (plugin));
+ gnome_scan_plugin_params_changed (plugin, param);
}
/**
@@ -224,9 +225,9 @@
void
gnome_scan_plugin_params_remove (GnomeScanPlugin *plugin, GParamSpec *param)
{
- g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin));
- g_param_spec_pool_remove (plugin->params, param);
- gnome_scan_plugin_params_changed (plugin, NULL);
+ g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin));
+ g_param_spec_pool_remove (plugin->params, param);
+ gnome_scan_plugin_params_changed (plugin, NULL);
}
/**
@@ -238,15 +239,15 @@
void
gnome_scan_plugin_params_clear (GnomeScanPlugin *plugin)
{
- g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin));
- GList *node;
+ g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin));
+ GList *node;
- node = g_param_spec_pool_list_owned (plugin->params, G_OBJECT_TYPE (plugin));
+ node = g_param_spec_pool_list_owned (plugin->params, G_OBJECT_TYPE (plugin));
- for (; node; node = node->next)
- g_param_spec_pool_remove (plugin->params, node->data);
+ for (; node; node = node->next)
+ g_param_spec_pool_remove (plugin->params, node->data);
- gnome_scan_plugin_params_changed (plugin, NULL);
+ gnome_scan_plugin_params_changed (plugin, NULL);
}
/**
@@ -260,49 +261,72 @@
GList*
gnome_scan_plugin_get_params (GnomeScanPlugin *plugin)
{
- g_return_val_if_fail (GNOME_IS_SCAN_PLUGIN (plugin), NULL);
- GList *params = NULL;
+ g_return_val_if_fail (GNOME_IS_SCAN_PLUGIN (plugin), NULL);
+ GList *params = NULL;
- params = g_param_spec_pool_list_owned (plugin->params,
- G_OBJECT_TYPE (plugin));
- params = g_list_sort (params, (GCompareFunc) gs_param_spec_cmp_index);
- return params;
+ params = g_param_spec_pool_list_owned (plugin->params,
+ G_OBJECT_TYPE (plugin));
+ params = g_list_sort (params, (GCompareFunc) gs_param_spec_cmp_index);
+ return params;
}
+/**
+ * gnome_scan_plugin_params_get_groups:
+ * @plugin: a #GnomeScanPlugin
+ *
+ * The options must be ordered by groups in order this function not to
+ * duplicate groups. When writing a #GnomeScanPlugin, ensure that
+ * sorting option by index keep groups's options sibling.
+ *
+ * Returns: a #GSList of groups #GQuark.
+ **/
GSList*
gnome_scan_plugin_params_get_groups (GnomeScanPlugin *plugin)
{
- GSList* groups = NULL;
- GList* node = gnome_scan_plugin_get_params(plugin);
- GQuark cur_group = 0, last_group = 0;
-
- for (; node ; node = node->next) {
- cur_group = gs_param_spec_get_group (node->data);
- if (!last_group || last_group != cur_group) {
- groups = g_slist_append (groups, (gpointer) cur_group);
- last_group = cur_group;
- }
- }
+ GSList* groups = NULL;
+ GList* node = gnome_scan_plugin_get_params(plugin);
+ GQuark cur_group = 0, last_group = 0;
+
+ for (; node ; node = node->next) {
+ cur_group = gs_param_spec_get_group (node->data);
+ if (!last_group || last_group != cur_group) {
+ groups = g_slist_append (groups, (gpointer) cur_group);
+ last_group = cur_group;
+ }
+ }
- return groups;
+ return groups;
}
+/**
+ * gnome_scan_plugin_params_get_other_groups:
+ * @plugin: a #GnomeScanPlugin
+ * @known_group0: the first known group #GQuark
+ * @...: A 0 terminated list of group #GQuark
+ *
+ * Return all group #GQuark except the one listed as parameter. This
+ * is useful if you want e.g. all param group except preview params
+ * group.
+ *
+ * Returns: a #GSList of #GQuark.
+ **/
GSList*
-gnome_scan_plugin_params_get_other_groups (GnomeScanPlugin *plugin, GQuark known_group0, ...)
+gnome_scan_plugin_params_get_other_groups (GnomeScanPlugin *plugin,
+ GQuark known_group0, ...)
{
- va_list args;
- va_start (args, known_group0);
- GSList *groups = gnome_scan_plugin_params_get_groups (plugin);
- GQuark known_group;
-
- /* list known group not to list */
- known_group = known_group0;
- while (known_group) {
- groups = g_slist_remove_all (groups, (gpointer) known_group);
- known_group = va_arg (args, GQuark);
- }
+ va_list args;
+ va_start (args, known_group0);
+ GSList *groups = gnome_scan_plugin_params_get_groups (plugin);
+ GQuark known_group;
+
+ /* list known group not to list */
+ known_group = known_group0;
+ while (known_group) {
+ groups = g_slist_remove_all (groups, (gpointer) known_group);
+ known_group = va_arg (args, GQuark);
+ }
- return groups;
+ return groups;
}
/**
@@ -317,58 +341,89 @@
GSList*
gnome_scan_plugin_get_param_group (GnomeScanPlugin *plugin, GQuark group)
{
- g_return_val_if_fail (GNOME_IS_SCAN_PLUGIN (plugin), NULL);
- GSList *list = NULL;
- gint i;
- guint n;
- GQuark pgroup;
- GParamSpec **specs =
- g_param_spec_pool_list (plugin->params,
- G_OBJECT_TYPE (plugin), &n);
-
- for (i = 0; i < n; i++) {
- pgroup = gs_param_spec_get_group (specs[i]);
- if (pgroup == group)
- list = g_slist_append (list, specs[i]);
- }
+ g_return_val_if_fail (GNOME_IS_SCAN_PLUGIN (plugin), NULL);
+ GSList *list = NULL;
+ gint i;
+ guint n;
+ GQuark pgroup;
+ GParamSpec **specs =
+ g_param_spec_pool_list (plugin->params,
+ G_OBJECT_TYPE (plugin), &n);
+
+ for (i = 0; i < n; i++) {
+ pgroup = gs_param_spec_get_group (specs[i]);
+ if (pgroup == group)
+ list = g_slist_append (list, specs[i]);
+ }
- list = g_slist_sort (list, (GCompareFunc) gs_param_spec_cmp_index);
+ list = g_slist_sort (list, (GCompareFunc) gs_param_spec_cmp_index);
- return list;
+ return list;
}
-/* List all param for groups0 and following (terminated by 0). */
+/**
+ * gnome_scan_plugin_get_param_groups:
+ * @plugin: a #GnomeScanPlugin
+ * @group0: The first group #GQuark
+ * @...: A 0 terminated list of group @GQuark
+ *
+ * List all params which belong to groups.
+ *
+ * Returns: a #GSList of #GParamSpec
+ **/
GSList*
-gnome_scan_plugin_get_param_groups (GnomeScanPlugin *plugin, GQuark group0, ...)
+gnome_scan_plugin_get_param_groups (GnomeScanPlugin *plugin,
+ GQuark group0, ...)
{
- GSList *groups = NULL;
- GQuark group;
- va_list args;
- va_start(args, group0);
-
- group = group0;
- while (group) {
- groups = g_slist_concat (groups,
- gnome_scan_plugin_get_param_group (plugin, group));
- group = va_arg(args, GQuark);
- }
+ GSList *groups = NULL;
+ GQuark group;
+ va_list args;
+ va_start(args, group0);
+
+ group = group0;
+ while (group) {
+ groups = g_slist_concat (groups,
+ gnome_scan_plugin_get_param_group (plugin, group));
+ group = va_arg(args, GQuark);
+ }
- return groups;
+ return groups;
}
+/**
+ * gnome_scan_plugin_params_lookup:
+ * @plugin: a #GnomeScanPlugin
+ * @name: The name of the searched parameter
+ *
+ * Search the param spec pool for parameter @name.
+ *
+ * Returns: a #GParamSpec or NULL.
+ **/
GParamSpec*
-gnome_scan_plugin_params_lookup (GnomeScanPlugin *plugin, const gchar *name)
+gnome_scan_plugin_params_lookup (GnomeScanPlugin *plugin,
+ const gchar *name)
{
- return g_param_spec_pool_lookup (plugin->params,
- name,
- G_OBJECT_TYPE (plugin),
- FALSE);
+ return g_param_spec_pool_lookup (plugin->params,
+ name,
+ G_OBJECT_TYPE (plugin),
+ FALSE);
}
-void gnome_scan_plugin_params_foreach (GnomeScanPlugin *plugin, GFunc func, gpointer user_data)
+/**
+ * gnome_scan_plugin_params_foreach:
+ * @plugin: #GnomeScanPlugin
+ * @func: user callback
+ * @user_data: pointer to data passed as argument to @func.
+ *
+ * Execute @func for each @plugin's params.
+ **/
+void
+gnome_scan_plugin_params_foreach (GnomeScanPlugin *plugin,
+ GFunc func,
+ gpointer user_data)
{
- GList *list = g_param_spec_pool_list_owned (plugin->params, G_OBJECT_TYPE (plugin));
- g_list_foreach (list, func, user_data);
+ GList *list = g_param_spec_pool_list_owned (plugin->params, G_OBJECT_TYPE (plugin));
+ g_list_foreach (list, func, user_data);
}
#define gs_exec_class_func_ret(k,f,d,a...) if(k->f){return klass->f(a);}else{return d;}
@@ -378,89 +433,138 @@
* gnome_scan_plugin_configure:
* @plugin: a #GnomeScanPlugin
* @settings: a #GnomeScanPlugin
+ *
+ * Note: Implemented by derived class, called by #GnomeScanJob.
*
* Search in @settings value for its instance parameters.
**/
void
gnome_scan_plugin_configure (GnomeScanPlugin *plugin, GnomeScanSettings *settings)
{
- g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin) && GNOME_IS_SCAN_SETTINGS (settings));
- GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
- gs_exec_class_func(klass, configure, plugin, settings);
+ g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin) && GNOME_IS_SCAN_SETTINGS (settings));
+ GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
+ gs_exec_class_func(klass, configure, plugin, settings);
}
+/**
+ * gnome_scan_plugin_get_child_nodes:
+ * @plugin: a #GnomeScanPlugin:
+ * @root: a root #GeglNode
+ *
+ * Note: Implemented by derived class, called by #GnomeScanJob.
+ *
+ * Return the list of #GeglNode to append to the
+ * pipeline. #GnomeScanJob link "input" and "output" pads of sibling
+ * nodes, not auxiliary pad.
+ *
+ * Returns: a #GList of #GeglNode
+ **/
GList*
gnome_scan_plugin_get_child_nodes (GnomeScanPlugin *plugin,
GeglNode *root)
{
- g_return_val_if_fail (GNOME_IS_SCAN_PLUGIN (plugin), NULL);
- GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
- gs_exec_class_func_ret(klass, get_child_nodes, NULL, plugin, root);
+ g_return_val_if_fail (GNOME_IS_SCAN_PLUGIN (plugin), NULL);
+ GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
+ gs_exec_class_func_ret(klass, get_child_nodes, NULL, plugin, root);
}
+/**
+ * gnome_scan_plugin_configure_frame:
+ * @plugin: a #GnomeScanPlugin
+ *
+ * Note: Implemented by derived class, called by #GnomeScanJob.
+ *
+ * This is used especially for per frame GEGL pipeline configuration.
+ **/
void
-gnome_scan_plugin_configure_frame (GnomeScanPlugin *plugin)
+gnome_scan_plugin_configure_frame (GnomeScanPlugin *plugin)
{
- g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin));
- GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
- gs_exec_class_func(klass, configure_frame, plugin)
+ g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin));
+ GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
+ gs_exec_class_func(klass, configure_frame, plugin);
}
+/**
+ * gnome_scan_plugin_start_frame:
+ * @plugin: a #GnomeScanPlugin
+ *
+ * Note: Implemented by derived class, called by #GnomeScanJob.
+ *
+ * Returns: wether the frame is to be processed or aborted.
+ **/
gboolean
gnome_scan_plugin_start_frame (GnomeScanPlugin *plugin)
{
- g_return_val_if_fail (GNOME_IS_SCAN_PLUGIN (plugin), FALSE);
- GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
- gs_exec_class_func_ret(klass, start_frame, TRUE, plugin);
+ g_return_val_if_fail (GNOME_IS_SCAN_PLUGIN (plugin), FALSE);
+ GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
+ gs_exec_class_func_ret(klass, start_frame, TRUE, plugin);
}
/**
* gnome_scan_plugin_work:
- * @plugin: a #GnomeScanPlugin
- * @progress: a pointer to a place where to store progress
- *
+ * @plugin: a #GnomeScanPlugin
+ * @progress: a pointer to a place where to store progress
+ *
+ * Note: Implemented by derived class, called by #GnomeScanJob.
+ *
* Do an iteration of plugin work. Store the amount of work done in
* progress as a fraction, from 0 to 1. progress set to 1 means work
* completed.
*
- * Returns: Wether more work iteration needs to be done.
+ * Returns: Wether more work iteration needs to be done.
**/
gboolean
-gnome_scan_plugin_work (GnomeScanPlugin *plugin, gdouble *progress)
+gnome_scan_plugin_work (GnomeScanPlugin *plugin,
+ gdouble *progress)
{
- g_return_val_if_fail (GNOME_IS_SCAN_PLUGIN (plugin), FALSE);
- GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
- *progress = 1.;
- gs_exec_class_func_ret(klass, work, FALSE, plugin, progress);
+ g_return_val_if_fail (GNOME_IS_SCAN_PLUGIN (plugin), FALSE);
+ GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
+ *progress = 1.;
+ gs_exec_class_func_ret(klass, work, FALSE, plugin, progress);
}
+/**
+ * gnome_scan_plugin_end_frame:
+ * @plugin: a #GnomeScanPlugin
+ *
+ * Note: Implemented by derived class, called by #GnomeScanJob.
+ **/
void
-gnome_scan_plugin_end_frame (GnomeScanPlugin *plugin)
+gnome_scan_plugin_end_frame (GnomeScanPlugin *plugin)
{
- g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin));
- GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
- gs_exec_class_func(klass, end_frame, plugin);
+ g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin));
+ GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
+ gs_exec_class_func(klass, end_frame, plugin);
}
+/**
+ * gnome_scan_plugin_end_scan:
+ * @plugin: a #GnomeScanPlugin
+ *
+ * Note: Implemented by derived class, called by #GnomeScanJob.
+ **/
void
-gnome_scan_plugin_end_scan (GnomeScanPlugin *plugin)
+gnome_scan_plugin_end_scan (GnomeScanPlugin *plugin)
{
- g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin));
- GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
- gs_exec_class_func(klass, end_scan, plugin);
+ g_return_if_fail (GNOME_IS_SCAN_PLUGIN (plugin));
+ GnomeScanPluginClass *klass = GNOME_SCAN_PLUGIN_GET_CLASS (plugin);
+ gs_exec_class_func(klass, end_scan, plugin);
}
/**
- * gnome_scan_plugin_changed:
- * @plugin: a #GnomeScanPlugin
+ * gnome_scan_plugin_params_changed:
+ * @plugin: a #GnomeScanPlugin
+ * @spec: a #GParamSpec from @plugin
*
- * Emit #GnomeScanPlugin::changed
+ * Emit #GnomeScanPlugin::changed for @spec param. For use in derived
+ * class.
*/
void
-gnome_scan_plugin_params_changed (GnomeScanPlugin *plugin, GParamSpec *spec)
+gnome_scan_plugin_params_changed (GnomeScanPlugin *plugin,
+ GParamSpec *spec)
{
- g_signal_emit (plugin, signals[PARAMS_CHANGED], 0, spec);
+ g_signal_emit (plugin, signals[PARAMS_CHANGED], 0, spec);
}
Modified: trunk/lib/gnome-scan-plugin.h
==============================================================================
--- trunk/lib/gnome-scan-plugin.h (original)
+++ trunk/lib/gnome-scan-plugin.h Tue Feb 26 22:27:14 2008
@@ -30,8 +30,6 @@
#include "gnome-scan-plugin.h"
#include "gnome-scan-settings.h"
-#define REFDBG(o) g_debug(G_STRLOC " %s ref count = %i", #o, G_OBJECT(o)->ref_count)
-
G_BEGIN_DECLS
#define GNOME_TYPE_SCAN_PLUGIN (gnome_scan_plugin_get_type ())
@@ -71,7 +69,6 @@
/**
* GnomeScanPlugin:
- * @buffer: the in/out #GdkPixbuf
* @params: the pool of params
*
* #GnomeScanPlugin is the base class for #GnomeScanner and
@@ -83,8 +80,8 @@
/*< private >*/
GObject parent_instance;
- /*< public >*/
GList *nodes;
+ /*< public >*/
GParamSpecPool *params;
};
Modified: trunk/lib/gnome-scan-preview-plugin.c
==============================================================================
--- trunk/lib/gnome-scan-preview-plugin.c (original)
+++ trunk/lib/gnome-scan-preview-plugin.c Tue Feb 26 22:27:14 2008
@@ -22,8 +22,14 @@
/**
* SECTION:
- * @short_description: #GnomeScanPreviewPlugin class
- *
+ * @stability: Unstable
+ *
+ * Base class for writing plugin to #GnomeScanPreviewArea. It's the
+ * #GnomeScanParamWidget for #GnomeScanPreviewArea. It allow to define a list
+ * of buttons added to the preview area, and changing a parameter value.
+ *
+ * This part is really supposed to change in the future, maybe by simply
+ * subclassing GtkBin or something similar.
**/
#include <glib/gi18n.h>
@@ -113,8 +119,24 @@
}
}
+/**
+ * gnome_scan_preview_plugin:
+ * @type: subtype of #GnomeScanPreviewPlugin to instanciate
+ * @scan_plugin: a #GnomeScanPlugin
+ * @pspec: the #GSParamSpec to manage
+ * @gspa: the #GnomeScanPreviewArea to extend
+ * @settings: the #GnomeScanSettings where to store value
+ * @box: the box where to put buttons
+ *
+ * Returns: a #GnomeScanPreviewPlugin
+ **/
GnomeScanPreviewPlugin*
-gnome_scan_preview_plugin (GType type, GnomeScanPlugin *scan_plugin, GParamSpec *pspec, GtkWidget *gspa, GnomeScanSettings *settings, GtkBox *box)
+gnome_scan_preview_plugin (GType type,
+ GnomeScanPlugin *scan_plugin,
+ GParamSpec *pspec,
+ GtkWidget *gspa,
+ GnomeScanSettings *settings,
+ GtkBox *box)
{
g_return_val_if_fail (g_type_is_a (type, GNOME_TYPE_SCAN_PREVIEW_PLUGIN), NULL);
GnomeScanPreviewPlugin* plugin = GNOME_SCAN_PREVIEW_PLUGIN (g_type_create_instance (type));
@@ -146,19 +168,36 @@
return plugin;
}
-
+/**
+ * gnome_scan_preview_plugin_freeze:
+ * @gspp: a #GnomeScanPreviewPlugin
+ *
+ * Freeze the plugin so that it doesn't react on value changes.
+ **/
void
gnome_scan_preview_plugin_freeze(GnomeScanPreviewPlugin *gspp)
{
gspp->frozen = TRUE;
}
+/**
+ * gnome_scan_preview_plugin_thaw:
+ * @gspp: a #GnomeScanPreviewPlugin
+ *
+ * Thaw the plugin so that it react on value changes.
+ **/
void
gnome_scan_preview_plugin_thaw(GnomeScanPreviewPlugin *gspp)
{
gspp->frozen = FALSE;
}
+/**
+ * gnome_scan_preview_plugin_changed:
+ * @gspp: a #GnomeScanPreviewPlugin
+ *
+ * To be called when the preview has been changed.
+ **/
void
gnome_scan_preview_plugin_changed (GnomeScanPreviewPlugin *gspp)
{
@@ -168,6 +207,16 @@
}
}
+/**
+ * gnome_scan_preview_plugin_draw_buffer:
+ * @gspp: a #GnomeScanPreviewPlugin
+ * @gspa: a #GnomeScaPreviewArea
+ * @cr: a cairo context
+ *
+ * For use by #GnomeScanPreviewArea
+ *
+ * Stability: Private
+ **/
void
gnome_scan_preview_plugin_draw_buffer (GnomeScanPreviewPlugin *gspp,
GtkWidget *gspa,
@@ -177,6 +226,10 @@
klass->draw_buffer(gspp, gspa, cr);
}
+/**
+ * gnome_scan_preview_plugin_destroy:
+ * @gspp: the dying #GnomeScanPreviewPlugin
+ **/
void
gnome_scan_preview_plugin_destroy (GnomeScanPreviewPlugin *gspp)
{
Modified: trunk/lib/gnome-scan-preview-plugin.h
==============================================================================
--- trunk/lib/gnome-scan-preview-plugin.h (original)
+++ trunk/lib/gnome-scan-preview-plugin.h Tue Feb 26 22:27:14 2008
@@ -37,8 +37,17 @@
#define GNOME_IS_SCAN_PREVIEW_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_TYPE_SCAN_PREVIEW_PLUGIN))
#define GNOME_SCAN_PREVIEW_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNOME_TYPE_SCAN_PREVIEW_PLUGIN, GnomeScanPreviewPluginClass))
+/* max param to watch per plugin */
#define GSPP_MAX_WATCH 4
+/**
+ * GS_DEFINE_PREVIEW_PLUGIN:
+ * @Name: Class name
+ * @name: function prefix
+ * @options: options to watch.
+ *
+ * Generate glib boiler plate code for creatin a new preview plugin.
+ **/
#define GS_DEFINE_PREVIEW_PLUGIN(Name, name, options) \
static void name##_class_init (GnomeScanPreviewPluginClass *klass); \
static void name##_init (GnomeScanPreviewPlugin *gspp); \
Modified: trunk/lib/gnome-scan-settings.c
==============================================================================
--- trunk/lib/gnome-scan-settings.c (original)
+++ trunk/lib/gnome-scan-settings.c Tue Feb 26 22:27:14 2008
@@ -21,7 +21,7 @@
/**
* SECTION: gnome-scan-settings
- * @short_description: Load settings accross plugins
+ * @short_description: Store settings for plugins
*
* When user switch from a scanner to another, he expects the settings
* to keep almost the same. e.g. resolution should not be resetted on
@@ -30,8 +30,12 @@
* key. This allow to apply the same #GnomeScanSettings on various
* #GnomeScanPlugin through gnome_scan_plugin_configure().
*
- * In the future, automatic saving to GConf or .ini would be such
- * feature easily added with this design.
+ * Since 0.5.92, #GnomeScanSettings load and store automatically
+ * settings in #GConf in /apps/gnome-scan/%prgname%/%key%. Ensure you
+ * have a call to g_set_prgname() before gnome_scan_init(). Loading is
+ * done upon construction. However, storing is done at dispose
+ * stage. Ensure to correctly ref/unref your #GnomeScanSettings
+ * instance in order to actually use this feature.
**/
#include <glib/gi18n.h>
@@ -46,7 +50,7 @@
{
/* using GParamSpec name as key, and GValue as value */
GHashTable *values;
- GConfClient *gconf;
+ GConfClient *gconf;
gboolean disposed;
};
@@ -285,9 +289,10 @@
object_class->dispose = gnome_scan_settings_dispose;
/**
- * GnomeScanParamWidget::changed:
- * @widget: The emitting widget
- * @value: The new value
+ * GnomeScanSettings::changed:
+ * @widget: The emitting widget
+ * @key: The changed key
+ * @value: The new value
*
* This signal is emitted when the value is changed by the user.
**/
@@ -318,6 +323,14 @@
return GNOME_SCAN_SETTINGS (object);
}
+/**
+ * gnome_scan_settings_init_value:
+ * @settings: a #GnomeScanSettings
+ * @pspec: a #GSParamSpec
+ *
+ * Store a new value in @settings using default value and key from
+ * @pspec.
+ **/
void
gnome_scan_settings_init_value (GnomeScanSettings *settings,
GParamSpec *pspec)
@@ -368,8 +381,8 @@
**/
void
gnome_scan_settings_set_transform (GnomeScanSettings *settings,
- const gchar *name,
- const GValue *value)
+ const gchar *name,
+ const GValue *value)
{
g_return_if_fail (GNOME_IS_SCAN_SETTINGS (settings) && G_IS_VALUE (value));
GValue *v = gnome_scan_settings_get (settings, name);
@@ -450,10 +463,10 @@
/**
* gnome_scan_settings_set_enum:
- * @settings: a #GnomeScanSettings
- * @name: #GParamSpec name
- * @value: genum value
- *
+ * @settings: a #GnomeScanSettings
+ * @name: #GParamSpec name
+ * @type: enum GType
+ * @value: enum value
*
* See: gnome_scan_settings_set_transform()
**/
@@ -557,7 +570,7 @@
}
/**
- * gnome_scan_settings_get:
+ * gnome_scan_settings_get_transformed:
* @settings: a #GnomeScanSettings
* @name: a key
* @type: Transformation destination type.
@@ -659,6 +672,13 @@
return val;
}
+/**
+ * gnome_scan_settings_get_boolean:
+ * @settings: a #GnomeScanSettings
+ * @name: value name
+ *
+ * Returns: a gboolean
+ **/
gboolean
gnome_scan_settings_get_boolean (GnomeScanSettings *settings,
const gchar *name)
@@ -701,6 +721,7 @@
/**
* gnome_scan_settings_get_boxed:
* @settings: a #GnomeScanSettings
+ * @type: #GBoxed derived #GType
* @name: a key
*
* Look for a value stored in the table for @name key.
Modified: trunk/lib/gnome-scan-sink.c
==============================================================================
--- trunk/lib/gnome-scan-sink.c (original)
+++ trunk/lib/gnome-scan-sink.c Tue Feb 26 22:27:14 2008
@@ -22,6 +22,7 @@
/**
* SECTION: gnome-scan-sink
* @short_description: Plug scan output to application
+ * @include: gnome-scan.h
*
* Sink is the last stage of the acquisition process. It handle the
* scan output and plug it into the application. e.g. do OCR and put
Modified: trunk/lib/gnome-scan-utils.c
==============================================================================
--- trunk/lib/gnome-scan-utils.c (original)
+++ trunk/lib/gnome-scan-utils.c Tue Feb 26 22:27:14 2008
@@ -21,8 +21,8 @@
*/
/**
- * SECTION:
- * @short_description: #GnomeScanUtils class
+ * SECTION: gnome-scan-utils
+ * @title: Miscellaneous utils
*
**/
#include "gnome-scan-utils.h"
@@ -43,13 +43,35 @@
return g_strdup (val->value_nick);
}
+/**
+ * gs_convert:
+ * @val: the value to convert
+ * @from: the current @val unit
+ * @to: the target unit fro @val
+ * @res: the resolution in dpi
+ *
+ * Convert @val from @from unit to @to at @res resolution. Useful for
+ * preview area, #GnomeScanner, etc.
+ **/
gdouble
-gs_convert (gdouble val, GnomeScanUnit from, GnomeScanUnit to, gdouble res)
+gs_convert (gdouble val,
+ GnomeScanUnit from,
+ GnomeScanUnit to,
+ gdouble res)
{
if (from == to)
return val;
switch (from) {
+ case GS_UNIT_NONE:
+ case GS_UNIT_BIT:
+ case GS_UNIT_PERCENT:
+ case GS_UNIT_MICROSECOND:
+ case GS_UNIT_DPI:
+ GS_WARN_UNSUPPORTED_UNIT(from);
+ return val;
+ default:
+ switch (to) {
case GS_UNIT_NONE:
case GS_UNIT_BIT:
case GS_UNIT_PERCENT:
@@ -58,66 +80,67 @@
GS_WARN_UNSUPPORTED_UNIT(from);
return val;
default:
- switch (to) {
- case GS_UNIT_NONE:
- case GS_UNIT_BIT:
- case GS_UNIT_PERCENT:
- case GS_UNIT_MICROSECOND:
- case GS_UNIT_DPI:
- GS_WARN_UNSUPPORTED_UNIT(from);
- return val;
- default:
- return gs_convert_from_mm (gs_convert_to_mm (val, from, res),
+ return gs_convert_from_mm (gs_convert_to_mm (val, from, res),
to, res);
- }
+ }
}
}
gdouble
-gs_convert_to_mm (gdouble val, GnomeScanUnit unit, gdouble res)
+gs_convert_to_mm (gdouble val,
+ GnomeScanUnit unit,
+ gdouble res)
{
switch (unit) {
- case GS_UNIT_NONE:
- case GS_UNIT_BIT:
- case GS_UNIT_PERCENT:
- case GS_UNIT_MICROSECOND:
- case GS_UNIT_DPI:
- GS_WARN_UNSUPPORTED_UNIT(unit);
- return val;
- case GS_UNIT_MM:
- return val;
- case GS_UNIT_PIXEL:
- return val * (MM_PER_INCH / res);
+ case GS_UNIT_NONE:
+ case GS_UNIT_BIT:
+ case GS_UNIT_PERCENT:
+ case GS_UNIT_MICROSECOND:
+ case GS_UNIT_DPI:
+ GS_WARN_UNSUPPORTED_UNIT(unit);
+ return val;
+ case GS_UNIT_MM:
+ return val;
+ case GS_UNIT_PIXEL:
+ return val * (MM_PER_INCH / res);
}
}
gdouble
-gs_convert_from_mm (gdouble val, GnomeScanUnit unit, gdouble res)
+gs_convert_from_mm (gdouble val,
+ GnomeScanUnit unit,
+ gdouble res)
{
switch (unit) {
- case GS_UNIT_NONE:
- case GS_UNIT_BIT:
- case GS_UNIT_PERCENT:
- case GS_UNIT_MICROSECOND:
- case GS_UNIT_DPI:
- GS_WARN_UNSUPPORTED_UNIT(unit);
- return val;
- case GS_UNIT_MM:
- return val;
- case GS_UNIT_PIXEL:
- return val / (MM_PER_INCH / res);
+ case GS_UNIT_NONE:
+ case GS_UNIT_BIT:
+ case GS_UNIT_PERCENT:
+ case GS_UNIT_MICROSECOND:
+ case GS_UNIT_DPI:
+ GS_WARN_UNSUPPORTED_UNIT(unit);
+ return val;
+ case GS_UNIT_MM:
+ return val;
+ case GS_UNIT_PIXEL:
+ return val / (MM_PER_INCH / res);
}
}
GdkRectangle*
-gs_rectangle_convert (GdkRectangle *r, GnomeScanUnit from, GnomeScanUnit to, gdouble res)
+gs_rectangle_convert (GdkRectangle *r,
+ GnomeScanUnit from,
+ GnomeScanUnit to,
+ gdouble res)
{
return gs_rectangle_convert_from_mm (gs_rectangle_convert_to_mm (r, from, res),
- to, res);
+ to, res);
}
-GdkRectangle* gs_rectangle_convert_to_mm (GdkRectangle *r, GnomeScanUnit unit, gdouble res)
+GdkRectangle*
+gs_rectangle_convert_to_mm (GdkRectangle *r,
+ GnomeScanUnit unit,
+ gdouble res)
{
GdkRectangle *rect = g_new0 (GdkRectangle, 1);
#define conv(var) rect->var = gs_convert_to_mm (r->var, unit, res)
@@ -129,7 +152,10 @@
return rect;
}
-GdkRectangle* gs_rectangle_convert_from_mm (GdkRectangle *r, GnomeScanUnit unit, gdouble res)
+GdkRectangle*
+gs_rectangle_convert_from_mm (GdkRectangle *r,
+ GnomeScanUnit unit,
+ gdouble res)
{
GdkRectangle *rect = g_new0 (GdkRectangle, 1);
#define conv(var) rect->var = gs_convert_from_mm (r->var, unit, res)
Modified: trunk/lib/gnome-scan-utils.h
==============================================================================
--- trunk/lib/gnome-scan-utils.h (original)
+++ trunk/lib/gnome-scan-utils.h Tue Feb 26 22:27:14 2008
@@ -65,6 +65,10 @@
}
+/**
+ * GnomeScanFormat:
+ *
+ **/
typedef struct _GnomeScanFormat GnomeScanFormat;
struct _GnomeScanFormat
{
@@ -75,6 +79,9 @@
gchar **extensions;
};
+/**
+ * GnomeScanUnit:
+ **/
typedef enum /*< lowercase_name=gs_param_unit,prefix=GS_UNIT >*/
{
GS_UNIT_NONE=-1,
Modified: trunk/lib/gnome-scan.h
==============================================================================
--- trunk/lib/gnome-scan.h (original)
+++ trunk/lib/gnome-scan.h Tue Feb 26 22:27:14 2008
@@ -27,8 +27,6 @@
#include <gnome-scan-job.h>
#include <gnome-scan-plugin.h>
#include <gnome-scan-sink.h>
-#include <gnome-scanner.h>
-#include <gnome-scan-preview-area.h>
#include <gnome-scan-dialog.h>
#include <gnome-scan-acquisition-dialog.h>
Modified: trunk/lib/gnome-scanner.c
==============================================================================
--- trunk/lib/gnome-scanner.c (original)
+++ trunk/lib/gnome-scanner.c Tue Feb 26 22:27:14 2008
@@ -22,6 +22,7 @@
/**
* SECTION: gnome-scanner
* @short_description: Acquisition plugin
+ * @include: gnome-scanner.h
*
* #GnomeScanner is the base class for backend specific scanner (like
* e.g SANE). Following SANE design, Gnome Scan scanner has an
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]