From: Vadim Zeitlin Date: Mon, 10 Sep 2007 10:49:55 +0000 (+0000) Subject: wxDL_XXX macros and dynamic loading cleanup: X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ced3df773028534651ef358ae692affdbf3f9aaf wxDL_XXX macros and dynamic loading cleanup: 1. Clearly document the wxDL_XXX macros; including their implicit usage of m_ok member variable 2. Made sure they're used in the same way in all places they are used (sometimes they were passed an object, sometimes a pointer, breaking compilation: see patch 1791288) 3. Don't allocate wxDynamicLibrary objects on heap unnecessarily (which removes the need to delete -- or leak, as it was -- them afterwards) 4. Some naming convention fixes git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/cairo.h b/include/wx/cairo.h index 644050bb53..2135ea932f 100644 --- a/include/wx/cairo.h +++ b/include/wx/cairo.h @@ -25,21 +25,31 @@ class wxCairoLibrary { public: - static wxCairoLibrary* Get(); + // return the pointer to the global instance of this class or NULL if we + // failed to load/initialize it + static wxCairoLibrary *Get(); + + + // for internal use only static void CleanUp(); private: + // the single wxCairoLibrary instance or NULL + static wxCairoLibrary *ms_lib; + wxCairoLibrary(); ~wxCairoLibrary(); bool IsOk(); - void InitializeMethods(); + bool InitializeMethods(); - bool m_ok; - wxDynamicLibrary *m_cairo_lib; - wxDynamicLibrary *m_pango_cairo_lib; + wxDynamicLibrary m_libCairo; + wxDynamicLibrary m_libPangoCairo; - static wxCairoLibrary *s_lib; + // true if we successfully loaded the libraries and can use them + // + // note that this field must have this name as it's used by wxDL_XXX macros + bool m_ok; public: wxDL_VOIDMETHOD_DEFINE( cairo_arc, @@ -88,32 +98,32 @@ public: (cairo_pattern_t *pattern, cairo_filter_t filter), (pattern, filter) ) wxDL_VOIDMETHOD_DEFINE( cairo_rectangle, (cairo_t *cr, double x, double y, double width, double height), (cr, x, y, width, height) ) - wxDL_METHOD_DEFINE( void, cairo_reset_clip, - (cairo_t *cr), (cr), /**/) - wxDL_METHOD_DEFINE( void, cairo_restore, - (cairo_t *cr), (cr), /**/) - wxDL_METHOD_DEFINE( void, cairo_rotate, - (cairo_t *cr, double angle), (cr, angle), /**/) - wxDL_METHOD_DEFINE( void, cairo_save, - (cairo_t *cr), (cr), /**/) - wxDL_METHOD_DEFINE( void, cairo_scale, - (cairo_t *cr, double sx, double sy), (cr, sx, sy), /**/) - wxDL_METHOD_DEFINE( void, cairo_set_dash, - (cairo_t *cr, const double *dashes, int num_dashes, double offset), (cr, dashes, num_dashes, offset), /**/) - wxDL_METHOD_DEFINE( void, cairo_set_fill_rule, - (cairo_t *cr, cairo_fill_rule_t fill_rule), (cr, fill_rule), /**/) - wxDL_METHOD_DEFINE( void, cairo_set_line_cap, - (cairo_t *cr, cairo_line_cap_t line_cap), (cr, line_cap), /**/) - wxDL_METHOD_DEFINE( void, cairo_set_line_join, - (cairo_t *cr, cairo_line_join_t line_join), (cr, line_join), /**/) - wxDL_METHOD_DEFINE( void, cairo_set_line_width, - (cairo_t *cr, double width), (cr, width), /**/) - wxDL_METHOD_DEFINE( void, cairo_set_operator, - (cairo_t *cr, cairo_operator_t op), (cr, op), /**/) - wxDL_METHOD_DEFINE( void, cairo_set_source, - (cairo_t *cr, cairo_pattern_t *source), (cr, source), /**/) - wxDL_METHOD_DEFINE( void, cairo_set_source_rgba, - (cairo_t *cr, double red, double green, double blue, double alpha), (cr, red, green, blue, alpha), /**/) + wxDL_VOIDMETHOD_DEFINE( cairo_reset_clip, + (cairo_t *cr), (cr) ) + wxDL_VOIDMETHOD_DEFINE( cairo_restore, + (cairo_t *cr), (cr) ) + wxDL_VOIDMETHOD_DEFINE( cairo_rotate, + (cairo_t *cr, double angle), (cr, angle) ) + wxDL_VOIDMETHOD_DEFINE( cairo_save, + (cairo_t *cr), (cr) ) + wxDL_VOIDMETHOD_DEFINE( cairo_scale, + (cairo_t *cr, double sx, double sy), (cr, sx, sy) ) + wxDL_VOIDMETHOD_DEFINE( cairo_set_dash, + (cairo_t *cr, const double *dashes, int num_dashes, double offset), (cr, dashes, num_dashes, offset) ) + wxDL_VOIDMETHOD_DEFINE( cairo_set_fill_rule, + (cairo_t *cr, cairo_fill_rule_t fill_rule), (cr, fill_rule) ) + wxDL_VOIDMETHOD_DEFINE( cairo_set_line_cap, + (cairo_t *cr, cairo_line_cap_t line_cap), (cr, line_cap) ) + wxDL_VOIDMETHOD_DEFINE( cairo_set_line_join, + (cairo_t *cr, cairo_line_join_t line_join), (cr, line_join) ) + wxDL_VOIDMETHOD_DEFINE( cairo_set_line_width, + (cairo_t *cr, double width), (cr, width) ) + wxDL_VOIDMETHOD_DEFINE( cairo_set_operator, + (cairo_t *cr, cairo_operator_t op), (cr, op) ) + wxDL_VOIDMETHOD_DEFINE( cairo_set_source, + (cairo_t *cr, cairo_pattern_t *source), (cr, source) ) + wxDL_VOIDMETHOD_DEFINE( cairo_set_source_rgba, + (cairo_t *cr, double red, double green, double blue, double alpha), (cr, red, green, blue, alpha) ) wxDL_VOIDMETHOD_DEFINE( cairo_stroke, (cairo_t *cr), (cr) ) wxDL_VOIDMETHOD_DEFINE( cairo_stroke_preserve, @@ -133,8 +143,6 @@ public: DECLARE_NO_COPY_CLASS(wxCairoLibrary) }; -#endif - // wxUSE_CAIRO +#endif // wxUSE_CAIRO -#endif - // _WX_CAIRO_H_BASE_ +#endif // _WX_CAIRO_H_BASE_ diff --git a/include/wx/dynlib.h b/include/wx/dynlib.h index a4916b3706..88e58a7c73 100644 --- a/include/wx/dynlib.h +++ b/include/wx/dynlib.h @@ -106,25 +106,40 @@ enum wxPluginCategory type pfn ## name = (type)(dynlib).GetSymbol(_T(#name)) -// the following macros can be used to redirect a whole -// library to a class and check at run-time if the the -// library is present and contains all required methods. - -#define wxDL_METHOD_DEFINE( rettype, name, args, shortargs, defret ) \ - typedef rettype (* name ## Type) args ; \ - name ## Type pfn_ ## name; \ +// the following macros can be used to redirect a whole library to a class and +// check at run-time if the library is present and contains all required +// methods +// +// notice that they are supposed to be used inside a class which has "m_ok" +// member variable indicating if the library had been successfully loaded + +// helper macros constructing the name of the variable storing the function +// pointer and the name of its type from the function name +#define wxDL_METHOD_NAME(name) m_pfn ## name +#define wxDL_METHOD_TYPE(name) name ## _t + +// parameters are: +// - rettype: return type of the function, e.g. "int" +// - name: name of the function, e.g. "foo" +// - args: function signature in parentheses, e.g. "(int x, int y)" +// - argnames: the names of the parameters in parentheses, e.g. "(x, y)" +// - defret: the value to return if the library wasn't successfully loaded +#define wxDL_METHOD_DEFINE( rettype, name, args, argnames, defret ) \ + typedef rettype (* wxDL_METHOD_TYPE(name)) args ; \ + wxDL_METHOD_TYPE(name) wxDL_METHOD_NAME(name); \ rettype name args \ - { if (m_ok) return pfn_ ## name shortargs ; return defret; } + { return m_ok ? wxDL_METHOD_NAME(name) argnames : defret; } -#define wxDL_VOIDMETHOD_DEFINE( name, args, shortargs ) \ - typedef void (* name ## Type) args ; \ - name ## Type pfn_ ## name; \ +#define wxDL_VOIDMETHOD_DEFINE( name, args, argnames ) \ + typedef void (* wxDL_METHOD_TYPE(name)) args ; \ + wxDL_METHOD_TYPE(name) wxDL_METHOD_NAME(name); \ void name args \ - { if (m_ok) pfn_ ## name shortargs ; } - -#define wxDL_METHOD_LOAD( lib, name, success ) \ - pfn_ ## name = (name ## Type) lib->GetSymbol( wxT(#name), &success ); \ - if (!success) return; + { if ( m_ok ) wxDL_METHOD_NAME(name) argnames ; } + +#define wxDL_METHOD_LOAD(lib, name) \ + wxDL_METHOD_NAME(name) = \ + (wxDL_METHOD_TYPE(name)) lib.GetSymbol(#name, &m_ok); \ + if ( !m_ok ) return false // ---------------------------------------------------------------------------- // wxDynamicLibraryDetails: contains details about a loaded wxDynamicLibrary diff --git a/src/common/cairo.cpp b/src/common/cairo.cpp index 811a73cd3c..474a05899b 100644 --- a/src/common/cairo.cpp +++ b/src/common/cairo.cpp @@ -26,7 +26,7 @@ #endif -wxCairoLibrary *wxCairoLibrary::s_lib = NULL; +wxCairoLibrary *wxCairoLibrary::ms_lib = NULL; //---------------------------------------------------------------------------- // wxCairoLibrary @@ -34,49 +34,49 @@ wxCairoLibrary *wxCairoLibrary::s_lib = NULL; wxCairoLibrary::wxCairoLibrary() { - m_cairo_lib = NULL; - m_pango_cairo_lib = NULL; - wxLogNull log; - m_cairo_lib = new wxDynamicLibrary( wxT("libcairo.so.2") ); - m_ok = m_cairo_lib->IsLoaded(); - if (!m_ok) return; - - m_pango_cairo_lib = new wxDynamicLibrary( wxT("libpangocairo-1.0.so.0") ); - m_ok = m_pango_cairo_lib->IsLoaded(); - if (!m_ok) return; + m_libCairo.Load("libcairo.so.2"); + m_ok = m_libCairo.IsLoaded(); + if ( !m_ok ) + return; + + m_libPangoCairo.Load("libpangocairo-1.0.so.0"); + m_ok = m_libPangoCairo.IsLoaded(); + if ( !m_ok ) + { + m_libCairo.Unload(); + return; + } - InitializeMethods(); + m_ok = InitializeMethods(); } wxCairoLibrary::~wxCairoLibrary() { - if (m_cairo_lib) - delete m_cairo_lib; } /* static */ wxCairoLibrary* wxCairoLibrary::Get() { - if (s_lib) - return s_lib; - - s_lib = new wxCairoLibrary(); - if (s_lib->IsOk()) - return s_lib; - - delete s_lib; - s_lib = NULL; + if ( !ms_lib ) + { + ms_lib = new wxCairoLibrary(); + if ( !ms_lib->IsOk() ) + { + delete ms_lib; + ms_lib = NULL; + } + } - return NULL; + return ms_lib; } /* static */ void wxCairoLibrary::CleanUp() { - if (s_lib) + if (ms_lib) { - delete s_lib; - s_lib = NULL; + delete ms_lib; + ms_lib = NULL; } } @@ -85,72 +85,69 @@ bool wxCairoLibrary::IsOk() return m_ok; } -void wxCairoLibrary::InitializeMethods() +bool wxCairoLibrary::InitializeMethods() { - m_ok = false; - bool success; - - wxDL_METHOD_LOAD( m_cairo_lib, cairo_arc, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_arc_negative, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_clip, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_close_path, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_create, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_curve_to, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_destroy, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_fill, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_fill_preserve, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_get_target, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_image_surface_create_for_data, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_line_to, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_move_to, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_new_path, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_paint, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_pattern_add_color_stop_rgba, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_pattern_create_for_surface, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_pattern_create_linear, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_pattern_create_radial, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_pattern_destroy, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_pattern_set_extend, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_pattern_set_filter, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_rectangle, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_reset_clip, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_restore, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_rotate, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_save, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_scale, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_set_dash, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_set_fill_rule, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_set_line_cap, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_set_line_join, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_set_line_width, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_set_operator, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_set_source, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_set_source_rgba, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_stroke, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_stroke_preserve, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_surface_create_similar, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_surface_destroy, success ) - wxDL_METHOD_LOAD( m_cairo_lib, cairo_translate, success ) - - wxDL_METHOD_LOAD( m_pango_cairo_lib, pango_cairo_update_layout, success ) - wxDL_METHOD_LOAD( m_pango_cairo_lib, pango_cairo_show_layout, success ) - - m_ok = true; + wxDL_METHOD_LOAD(m_libCairo, cairo_arc); + wxDL_METHOD_LOAD(m_libCairo, cairo_arc_negative); + wxDL_METHOD_LOAD(m_libCairo, cairo_clip); + wxDL_METHOD_LOAD(m_libCairo, cairo_close_path); + wxDL_METHOD_LOAD(m_libCairo, cairo_create); + wxDL_METHOD_LOAD(m_libCairo, cairo_curve_to); + wxDL_METHOD_LOAD(m_libCairo, cairo_destroy); + wxDL_METHOD_LOAD(m_libCairo, cairo_fill); + wxDL_METHOD_LOAD(m_libCairo, cairo_fill_preserve); + wxDL_METHOD_LOAD(m_libCairo, cairo_get_target); + wxDL_METHOD_LOAD(m_libCairo, cairo_image_surface_create_for_data); + wxDL_METHOD_LOAD(m_libCairo, cairo_line_to); + wxDL_METHOD_LOAD(m_libCairo, cairo_move_to); + wxDL_METHOD_LOAD(m_libCairo, cairo_new_path); + wxDL_METHOD_LOAD(m_libCairo, cairo_paint); + wxDL_METHOD_LOAD(m_libCairo, cairo_pattern_add_color_stop_rgba); + wxDL_METHOD_LOAD(m_libCairo, cairo_pattern_create_for_surface); + wxDL_METHOD_LOAD(m_libCairo, cairo_pattern_create_linear); + wxDL_METHOD_LOAD(m_libCairo, cairo_pattern_create_radial); + wxDL_METHOD_LOAD(m_libCairo, cairo_pattern_destroy); + wxDL_METHOD_LOAD(m_libCairo, cairo_pattern_set_extend); + wxDL_METHOD_LOAD(m_libCairo, cairo_pattern_set_filter); + wxDL_METHOD_LOAD(m_libCairo, cairo_rectangle); + wxDL_METHOD_LOAD(m_libCairo, cairo_reset_clip); + wxDL_METHOD_LOAD(m_libCairo, cairo_restore); + wxDL_METHOD_LOAD(m_libCairo, cairo_rotate); + wxDL_METHOD_LOAD(m_libCairo, cairo_save); + wxDL_METHOD_LOAD(m_libCairo, cairo_scale); + wxDL_METHOD_LOAD(m_libCairo, cairo_set_dash); + wxDL_METHOD_LOAD(m_libCairo, cairo_set_fill_rule); + wxDL_METHOD_LOAD(m_libCairo, cairo_set_line_cap); + wxDL_METHOD_LOAD(m_libCairo, cairo_set_line_join); + wxDL_METHOD_LOAD(m_libCairo, cairo_set_line_width); + wxDL_METHOD_LOAD(m_libCairo, cairo_set_operator); + wxDL_METHOD_LOAD(m_libCairo, cairo_set_source); + wxDL_METHOD_LOAD(m_libCairo, cairo_set_source_rgba); + wxDL_METHOD_LOAD(m_libCairo, cairo_stroke); + wxDL_METHOD_LOAD(m_libCairo, cairo_stroke_preserve); + wxDL_METHOD_LOAD(m_libCairo, cairo_surface_create_similar); + wxDL_METHOD_LOAD(m_libCairo, cairo_surface_destroy); + wxDL_METHOD_LOAD(m_libCairo, cairo_translate); + + wxDL_METHOD_LOAD(m_libPangoCairo, pango_cairo_update_layout); + wxDL_METHOD_LOAD(m_libPangoCairo, pango_cairo_show_layout); + + return true; } //---------------------------------------------------------------------------- // wxCairoModule //---------------------------------------------------------------------------- -class wxCairoModule: public wxModule +class wxCairoModule : public wxModule { public: wxCairoModule() { } - bool OnInit(); - void OnExit(); + virtual bool OnInit(); + virtual void OnExit(); private: - DECLARE_DYNAMIC_CLASS(wxCairoPrintModule) + DECLARE_DYNAMIC_CLASS(wxCairotModule) }; bool wxCairoModule::OnInit() @@ -165,5 +162,4 @@ void wxCairoModule::OnExit() IMPLEMENT_DYNAMIC_CLASS(wxCairoModule, wxModule) -#endif - // wxUSE_CAIRO +#endif // wxUSE_CAIRO diff --git a/src/gtk/gnome/gprint.cpp b/src/gtk/gnome/gprint.cpp index 1bc67576ff..5e5aa5c796 100644 --- a/src/gtk/gnome/gprint.cpp +++ b/src/gtk/gnome/gprint.cpp @@ -55,13 +55,17 @@ public: wxGnomePrintLibrary(); ~wxGnomePrintLibrary(); +private: bool IsOk(); - void InitializeMethods(); + bool InitializeMethods(); -private: - bool m_ok; - wxDynamicLibrary *m_gnome_print_lib; - wxDynamicLibrary *m_gnome_printui_lib; + wxDynamicLibrary m_libGnomePrint; + wxDynamicLibrary m_libGnomePrintUI; + + // only true if we successfully loaded both libraries + // + // don't rename this field, it's used by wxDL_XXX macros internally + bool m_ok; public: wxDL_METHOD_DEFINE( gint, gnome_print_newpath, @@ -183,28 +187,26 @@ public: wxGnomePrintLibrary::wxGnomePrintLibrary() { - m_gnome_print_lib = NULL; - m_gnome_printui_lib = NULL; - wxLogNull log; - m_gnome_print_lib = new wxDynamicLibrary( wxT("libgnomeprint-2-2.so.0") ); - m_ok = m_gnome_print_lib->IsLoaded(); - if (!m_ok) return; + m_libGnomePrint.Load("libgnomeprint-2-2.so.0"); + m_ok = m_libGnomePrint.IsLoaded(); + if ( !m_ok ) + return; - m_gnome_printui_lib = new wxDynamicLibrary( wxT("libgnomeprintui-2-2.so.0") ); - m_ok = m_gnome_printui_lib->IsLoaded(); - if (!m_ok) return; + m_libGnomePrintUI.Load("libgnomeprintui-2-2.so.0"); + m_ok = m_libGnomePrintUI->IsLoaded(); + if ( !m_ok ) + { + m_libGnomePrint.Unload(); + return; + } - InitializeMethods(); + m_ok = InitializeMethods(); } wxGnomePrintLibrary::~wxGnomePrintLibrary() { - if (m_gnome_print_lib) - delete m_gnome_print_lib; - if (m_gnome_printui_lib) - delete m_gnome_printui_lib; } bool wxGnomePrintLibrary::IsOk() @@ -212,78 +214,75 @@ bool wxGnomePrintLibrary::IsOk() return m_ok; } -void wxGnomePrintLibrary::InitializeMethods() -{ - m_ok = false; - bool success; - - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_newpath, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_moveto, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_lineto, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_curveto, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_arcto, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_closepath, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_stroke, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_fill, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_setrgbcolor, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_setlinewidth, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_setdash, success ) - - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_rgbimage, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_rgbaimage, success ) - - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_concat, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_scale, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_rotate, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_translate, success ) - - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_gsave, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_grestore, success ) - - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_clip, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_eoclip, success ) - - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_beginpage, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_showpage, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_end_doc, success ) - - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_pango_create_layout, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_pango_layout, success ) - - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_job_new, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_job_get_context, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_job_close, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_job_print, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_job_get_page_size, success ) - - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_unit_get_by_abbreviation, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_convert_distance, success ) - - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_config_default, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_config_set, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_config_set_boolean, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_config_set_double, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_config_set_int, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_config_set_length, success ) +bool wxGnomePrintLibrary::InitializeMethods() +{ + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_newpath ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_moveto ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_lineto ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_curveto ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_arcto ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_closepath ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_stroke ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_fill ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_setrgbcolor ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_setlinewidth ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_setdash ) + + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_rgbimage ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_rgbaimage ) + + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_concat ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_scale ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_rotate ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_translate ) + + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_gsave ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_grestore ) + + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_clip ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_eoclip ) + + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_beginpage ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_showpage ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_end_doc ) + + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_pango_create_layout ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_pango_layout ) + + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_job_new ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_job_get_context ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_job_close ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_job_print ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_job_get_page_size ) + + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_unit_get_by_abbreviation ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_convert_distance ) + + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_default ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_set ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_set_boolean ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_set_double ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_set_int ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_set_length ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_config_get, success ) - wxDL_METHOD_LOAD( m_gnome_print_lib, gnome_print_config_get_length, success ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_get ) + wxDL_METHOD_LOAD( m_libGnomePrint, gnome_print_config_get_length ) - wxDL_METHOD_LOAD( m_gnome_printui_lib, gnome_print_dialog_new, success ) - wxDL_METHOD_LOAD( m_gnome_printui_lib, gnome_print_dialog_construct_range_page, success ) - wxDL_METHOD_LOAD( m_gnome_printui_lib, gnome_print_dialog_get_copies, success ) - wxDL_METHOD_LOAD( m_gnome_printui_lib, gnome_print_dialog_set_copies, success ) - wxDL_METHOD_LOAD( m_gnome_printui_lib, gnome_print_dialog_get_range, success ) - wxDL_METHOD_LOAD( m_gnome_printui_lib, gnome_print_dialog_get_range_page, success ) + wxDL_METHOD_LOAD( m_libGnomePrintUI, gnome_print_dialog_new ) + wxDL_METHOD_LOAD( m_libGnomePrintUI, gnome_print_dialog_construct_range_page ) + wxDL_METHOD_LOAD( m_libGnomePrintUI, gnome_print_dialog_get_copies ) + wxDL_METHOD_LOAD( m_libGnomePrintUI, gnome_print_dialog_set_copies ) + wxDL_METHOD_LOAD( m_libGnomePrintUI, gnome_print_dialog_get_range ) + wxDL_METHOD_LOAD( m_libGnomePrintUI, gnome_print_dialog_get_range_page ) - wxDL_METHOD_LOAD( m_gnome_printui_lib, gnome_paper_selector_new_with_flags, success ) + wxDL_METHOD_LOAD( m_libGnomePrintUI, gnome_paper_selector_new_with_flags ) - wxDL_METHOD_LOAD( m_gnome_printui_lib, gnome_print_job_preview_new, success ) + wxDL_METHOD_LOAD( m_libGnomePrintUI, gnome_print_job_preview_new ) - m_ok = true; + return true; } -static wxGnomePrintLibrary* gs_lgp = NULL; +static wxGnomePrintLibrary* gs_libGnomePrint = NULL; //---------------------------------------------------------------------------- // wxGnomePrintNativeData @@ -293,8 +292,8 @@ IMPLEMENT_CLASS(wxGnomePrintNativeData, wxPrintNativeDataBase) wxGnomePrintNativeData::wxGnomePrintNativeData() { - m_config = gs_lgp->gnome_print_config_default(); - m_job = gs_lgp->gnome_print_job_new( m_config ); + m_config = gs_libGnomePrint->gnome_print_config_default(); + m_job = gs_libGnomePrint->gnome_print_job_new( m_config ); } wxGnomePrintNativeData::~wxGnomePrintNativeData() @@ -304,7 +303,7 @@ wxGnomePrintNativeData::~wxGnomePrintNativeData() bool wxGnomePrintNativeData::TransferTo( wxPrintData &data ) { - guchar *res = gs_lgp->gnome_print_config_get( m_config, + guchar *res = gs_libGnomePrint->gnome_print_config_get( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAGE_ORIENTATION ); if (g_ascii_strcasecmp((const gchar *)res,"R90") == 0) data.SetOrientation( wxLANDSCAPE ); @@ -319,72 +318,72 @@ bool wxGnomePrintNativeData::TransferFrom( const wxPrintData &data ) { if (data.GetOrientation() == wxLANDSCAPE) { - gs_lgp->gnome_print_config_set( m_config, + gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAGE_ORIENTATION, (guchar*)(char*)"R90" ); } else { - gs_lgp->gnome_print_config_set( m_config, + gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAGE_ORIENTATION, (guchar*)(char*)"R0" ); } if (data.GetCollate()) { - gs_lgp->gnome_print_config_set_boolean( m_config, + gs_libGnomePrint->gnome_print_config_set_boolean( m_config, (guchar*)(char*)GNOME_PRINT_KEY_COLLATE, TRUE ); } else { - gs_lgp->gnome_print_config_set_boolean( m_config, + gs_libGnomePrint->gnome_print_config_set_boolean( m_config, (guchar*)(char*)GNOME_PRINT_KEY_COLLATE, FALSE ); } switch (data.GetPaperId()) { - case wxPAPER_A3: gs_lgp->gnome_print_config_set( m_config, + case wxPAPER_A3: gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAPER_SIZE, (guchar*)(char*)"A3" ); break; - case wxPAPER_A5: gs_lgp->gnome_print_config_set( m_config, + case wxPAPER_A5: gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAPER_SIZE, (guchar*)(char*)"A5" ); break; - case wxPAPER_B4: gs_lgp->gnome_print_config_set( m_config, + case wxPAPER_B4: gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAPER_SIZE, (guchar*)(char*)"B4" ); break; - case wxPAPER_B5: gs_lgp->gnome_print_config_set( m_config, + case wxPAPER_B5: gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAPER_SIZE, (guchar*)(char*)"B5" ); break; - case wxPAPER_LETTER: gs_lgp->gnome_print_config_set( m_config, + case wxPAPER_LETTER: gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAPER_SIZE, (guchar*)(char*)"USLetter" ); break; - case wxPAPER_LEGAL: gs_lgp->gnome_print_config_set( m_config, + case wxPAPER_LEGAL: gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAPER_SIZE, (guchar*)(char*)"USLegal" ); break; - case wxPAPER_EXECUTIVE: gs_lgp->gnome_print_config_set( m_config, + case wxPAPER_EXECUTIVE: gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAPER_SIZE, (guchar*)(char*)"Executive" ); break; - case wxPAPER_ENV_C5: gs_lgp->gnome_print_config_set( m_config, + case wxPAPER_ENV_C5: gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAPER_SIZE, (guchar*)(char*)"C5" ); break; - case wxPAPER_ENV_C6: gs_lgp->gnome_print_config_set( m_config, + case wxPAPER_ENV_C6: gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAPER_SIZE, (guchar*)(char*)"C6" ); break; case wxPAPER_NONE: break; default: - case wxPAPER_A4: gs_lgp->gnome_print_config_set( m_config, + case wxPAPER_A4: gs_libGnomePrint->gnome_print_config_set( m_config, (guchar*)(char*)GNOME_PRINT_KEY_PAPER_SIZE, (guchar*)(char*)"A4" ); break; @@ -528,7 +527,7 @@ void wxGnomePrintDialog::Init() wxGnomePrintNativeData *native = (wxGnomePrintNativeData*) data.GetNativeData(); - m_widget = gs_lgp->gnome_print_dialog_new( native->GetPrintJob(), + m_widget = gs_libGnomePrint->gnome_print_dialog_new( native->GetPrintJob(), (guchar*)"Print", GNOME_PRINT_DIALOG_RANGE|GNOME_PRINT_DIALOG_COPIES ); @@ -538,7 +537,7 @@ void wxGnomePrintDialog::Init() if (m_printDialogData.GetEnablePageNumbers()) flag |= GNOME_PRINT_RANGE_ALL|GNOME_PRINT_RANGE_RANGE; - gs_lgp->gnome_print_dialog_construct_range_page( (GnomePrintDialog*) m_widget, + gs_libGnomePrint->gnome_print_dialog_construct_range_page( (GnomePrintDialog*) m_widget, flag, m_printDialogData.GetMinPage(), m_printDialogData.GetMaxPage(), @@ -567,11 +566,11 @@ int wxGnomePrintDialog::ShowModal() gint copies = 1; gboolean collate = false; - gs_lgp->gnome_print_dialog_get_copies( (GnomePrintDialog*) m_widget, &copies, &collate ); + gs_libGnomePrint->gnome_print_dialog_get_copies( (GnomePrintDialog*) m_widget, &copies, &collate ); m_printDialogData.SetNoCopies( copies ); m_printDialogData.SetCollate( collate ); - switch (gs_lgp->gnome_print_dialog_get_range( (GnomePrintDialog*) m_widget )) + switch (gs_libGnomePrint->gnome_print_dialog_get_range( (GnomePrintDialog*) m_widget )) { case GNOME_PRINT_RANGE_SELECTION: m_printDialogData.SetSelection( true ); @@ -584,7 +583,7 @@ int wxGnomePrintDialog::ShowModal() case GNOME_PRINT_RANGE_RANGE: default: gint start,end; - gs_lgp->gnome_print_dialog_get_range_page( (GnomePrintDialog*) m_widget, &start, &end ); + gs_libGnomePrint->gnome_print_dialog_get_range_page( (GnomePrintDialog*) m_widget, &start, &end ); m_printDialogData.SetFromPage( start ); m_printDialogData.SetToPage( end ); break; @@ -640,34 +639,34 @@ wxGnomePageSetupDialog::wxGnomePageSetupDialog( wxWindow *parent, // This *was* required as the page setup dialog // calculates wrong values otherwise. #if 0 - gs_lgp->gnome_print_config_set( native->GetPrintConfig(), + gs_libGnomePrint->gnome_print_config_set( native->GetPrintConfig(), (const guchar*) GNOME_PRINT_KEY_PREFERED_UNIT, (const guchar*) "Pts" ); #endif GnomePrintConfig *config = native->GetPrintConfig(); - const GnomePrintUnit *mm_unit = gs_lgp->gnome_print_unit_get_by_abbreviation( (const guchar*) "mm" ); + const GnomePrintUnit *mm_unit = gs_libGnomePrint->gnome_print_unit_get_by_abbreviation( (const guchar*) "mm" ); double ml = (double) m_pageDialogData.GetMarginTopLeft().x; double mt = (double) m_pageDialogData.GetMarginTopLeft().y; double mr = (double) m_pageDialogData.GetMarginBottomRight().x; double mb = (double) m_pageDialogData.GetMarginBottomRight().y; - gs_lgp->gnome_print_config_set_length (config, + gs_libGnomePrint->gnome_print_config_set_length (config, (const guchar*) GNOME_PRINT_KEY_PAGE_MARGIN_LEFT, ml, mm_unit ); - gs_lgp->gnome_print_config_set_length (config, + gs_libGnomePrint->gnome_print_config_set_length (config, (const guchar*) GNOME_PRINT_KEY_PAGE_MARGIN_RIGHT, mr, mm_unit ); - gs_lgp->gnome_print_config_set_length (config, + gs_libGnomePrint->gnome_print_config_set_length (config, (const guchar*) GNOME_PRINT_KEY_PAGE_MARGIN_TOP, mt, mm_unit ); - gs_lgp->gnome_print_config_set_length (config, + gs_libGnomePrint->gnome_print_config_set_length (config, (const guchar*) GNOME_PRINT_KEY_PAGE_MARGIN_BOTTOM, mb, mm_unit ); m_widget = gtk_dialog_new(); gtk_window_set_title( GTK_WINDOW(m_widget), wxGTK_CONV( _("Page setup") ) ); - GtkWidget *main = gs_lgp->gnome_paper_selector_new_with_flags( native->GetPrintConfig(), + GtkWidget *main = gs_libGnomePrint->gnome_paper_selector_new_with_flags( native->GetPrintConfig(), GNOME_PAPER_SELECTOR_MARGINS|GNOME_PAPER_SELECTOR_FEED_ORIENTATION ); gtk_container_set_border_width (GTK_CONTAINER (main), 8); gtk_widget_show (main); @@ -711,29 +710,29 @@ int wxGnomePageSetupDialog::ShowModal() // I don't know how querying the last parameter works double ml,mr,mt,mb,pw,ph; - gs_lgp->gnome_print_config_get_length (config, + gs_libGnomePrint->gnome_print_config_get_length (config, (const guchar*) GNOME_PRINT_KEY_PAGE_MARGIN_LEFT, &ml, NULL); - gs_lgp->gnome_print_config_get_length (config, + gs_libGnomePrint->gnome_print_config_get_length (config, (const guchar*) GNOME_PRINT_KEY_PAGE_MARGIN_RIGHT, &mr, NULL); - gs_lgp->gnome_print_config_get_length (config, + gs_libGnomePrint->gnome_print_config_get_length (config, (const guchar*) GNOME_PRINT_KEY_PAGE_MARGIN_TOP, &mt, NULL); - gs_lgp->gnome_print_config_get_length (config, + gs_libGnomePrint->gnome_print_config_get_length (config, (const guchar*) GNOME_PRINT_KEY_PAGE_MARGIN_BOTTOM, &mb, NULL); - gs_lgp->gnome_print_config_get_length (config, + gs_libGnomePrint->gnome_print_config_get_length (config, (const guchar*) GNOME_PRINT_KEY_PAPER_WIDTH, &pw, NULL); - gs_lgp->gnome_print_config_get_length (config, + gs_libGnomePrint->gnome_print_config_get_length (config, (const guchar*) GNOME_PRINT_KEY_PAPER_HEIGHT, &ph, NULL); // This code converts correctly from what the user chose // as the unit although I query Pts here - const GnomePrintUnit *mm_unit = gs_lgp->gnome_print_unit_get_by_abbreviation( (const guchar*) "mm" ); - const GnomePrintUnit *pts_unit = gs_lgp->gnome_print_unit_get_by_abbreviation( (const guchar*) "Pts" ); - gs_lgp->gnome_print_convert_distance( &ml, pts_unit, mm_unit ); - gs_lgp->gnome_print_convert_distance( &mr, pts_unit, mm_unit ); - gs_lgp->gnome_print_convert_distance( &mt, pts_unit, mm_unit ); - gs_lgp->gnome_print_convert_distance( &mb, pts_unit, mm_unit ); - gs_lgp->gnome_print_convert_distance( &pw, pts_unit, mm_unit ); - gs_lgp->gnome_print_convert_distance( &ph, pts_unit, mm_unit ); + const GnomePrintUnit *mm_unit = gs_libGnomePrint->gnome_print_unit_get_by_abbreviation( (const guchar*) "mm" ); + const GnomePrintUnit *pts_unit = gs_libGnomePrint->gnome_print_unit_get_by_abbreviation( (const guchar*) "Pts" ); + gs_libGnomePrint->gnome_print_convert_distance( &ml, pts_unit, mm_unit ); + gs_libGnomePrint->gnome_print_convert_distance( &mr, pts_unit, mm_unit ); + gs_libGnomePrint->gnome_print_convert_distance( &mt, pts_unit, mm_unit ); + gs_libGnomePrint->gnome_print_convert_distance( &mb, pts_unit, mm_unit ); + gs_libGnomePrint->gnome_print_convert_distance( &pw, pts_unit, mm_unit ); + gs_libGnomePrint->gnome_print_convert_distance( &ph, pts_unit, mm_unit ); m_pageDialogData.SetMarginTopLeft( wxPoint( (int)(ml+0.5), (int)(mt+0.5)) ); m_pageDialogData.SetMarginBottomRight( wxPoint( (int)(mr+0.5), (int)(mb+0.5)) ); @@ -797,7 +796,7 @@ bool wxGnomePrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt ) wxGnomePrintNativeData *native = (wxGnomePrintNativeData*) printdata.GetNativeData(); - GnomePrintJob *job = gs_lgp->gnome_print_job_new( native->GetPrintConfig() ); + GnomePrintJob *job = gs_libGnomePrint->gnome_print_job_new( native->GetPrintConfig() ); // The GnomePrintJob is temporarily stored in the // native print data as the native print dialog @@ -823,7 +822,7 @@ bool wxGnomePrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt ) if (!dc) { - gs_lgp->gnome_print_job_close( job ); + gs_libGnomePrint->gnome_print_job_close( job ); g_object_unref (job); if (sm_lastError != wxPRINTER_CANCELLED) sm_lastError = wxPRINTER_ERROR; @@ -856,7 +855,7 @@ bool wxGnomePrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt ) if (maxPage == 0) { - gs_lgp->gnome_print_job_close( job ); + gs_libGnomePrint->gnome_print_job_close( job ); g_object_unref (job); sm_lastError = wxPRINTER_ERROR; return false; @@ -899,11 +898,11 @@ bool wxGnomePrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt ) printout->OnEndPrinting(); } - gs_lgp->gnome_print_job_close( job ); + gs_libGnomePrint->gnome_print_job_close( job ); if (m_native_preview) { const wxCharBuffer title(wxGTK_CONV_SYS(_("Print preview"))); - GtkWidget *preview = gs_lgp->gnome_print_job_preview_new + GtkWidget *preview = gs_libGnomePrint->gnome_print_job_preview_new ( job, (const guchar *)title.data() @@ -912,7 +911,7 @@ bool wxGnomePrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt ) } else { - gs_lgp->gnome_print_job_print( job ); + gs_libGnomePrint->gnome_print_job_print( job ); } g_object_unref (job); @@ -956,9 +955,9 @@ wxGnomePrintDC::wxGnomePrintDC( const wxPrintData& data ) (wxGnomePrintNativeData*) m_printData.GetNativeData(); m_job = native->GetPrintJob(); - m_gpc = gs_lgp->gnome_print_job_get_context (m_job); + m_gpc = gs_libGnomePrint->gnome_print_job_get_context (m_job); - m_layout = gs_lgp->gnome_print_pango_create_layout( m_gpc ); + m_layout = gs_libGnomePrint->gnome_print_pango_create_layout( m_gpc ); m_fontdesc = pango_font_description_from_string( "Sans 12" ); m_context = NULL; @@ -997,9 +996,9 @@ void wxGnomePrintDC::DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) SetPen( m_pen ); - gs_lgp->gnome_print_moveto ( m_gpc, XLOG2DEV(x1), YLOG2DEV(y1) ); - gs_lgp->gnome_print_lineto ( m_gpc, XLOG2DEV(x2), YLOG2DEV(y2) ); - gs_lgp->gnome_print_stroke ( m_gpc); + gs_libGnomePrint->gnome_print_moveto ( m_gpc, XLOG2DEV(x1), YLOG2DEV(y1) ); + gs_libGnomePrint->gnome_print_lineto ( m_gpc, XLOG2DEV(x2), YLOG2DEV(y2) ); + gs_libGnomePrint->gnome_print_stroke ( m_gpc); CalcBoundingBox( x1, y1 ); CalcBoundingBox( x2, y2 ); @@ -1043,21 +1042,21 @@ void wxGnomePrintDC::DoDrawArc(wxCoord x1,wxCoord y1,wxCoord x2,wxCoord y2,wxCoo if (m_brush.GetStyle() != wxTRANSPARENT) { SetBrush( m_brush ); - gs_lgp->gnome_print_moveto ( m_gpc, XLOG2DEV(xc), YLOG2DEV(yc) ); - gs_lgp->gnome_print_arcto( m_gpc, XLOG2DEV(xc), YLOG2DEV(yc), XLOG2DEVREL((int)radius), alpha1, alpha2, 0 ); + gs_libGnomePrint->gnome_print_moveto ( m_gpc, XLOG2DEV(xc), YLOG2DEV(yc) ); + gs_libGnomePrint->gnome_print_arcto( m_gpc, XLOG2DEV(xc), YLOG2DEV(yc), XLOG2DEVREL((int)radius), alpha1, alpha2, 0 ); - gs_lgp->gnome_print_fill( m_gpc ); + gs_libGnomePrint->gnome_print_fill( m_gpc ); } if (m_pen.GetStyle() != wxTRANSPARENT) { SetPen (m_pen); - gs_lgp->gnome_print_newpath( m_gpc ); - gs_lgp->gnome_print_moveto ( m_gpc, XLOG2DEV(xc), YLOG2DEV(yc) ); - gs_lgp->gnome_print_arcto( m_gpc, XLOG2DEV(xc), YLOG2DEV(yc), XLOG2DEVREL((int)radius), alpha1, alpha2, 0 ); - gs_lgp->gnome_print_closepath( m_gpc ); + gs_libGnomePrint->gnome_print_newpath( m_gpc ); + gs_libGnomePrint->gnome_print_moveto ( m_gpc, XLOG2DEV(xc), YLOG2DEV(yc) ); + gs_libGnomePrint->gnome_print_arcto( m_gpc, XLOG2DEV(xc), YLOG2DEV(yc), XLOG2DEVREL((int)radius), alpha1, alpha2, 0 ); + gs_libGnomePrint->gnome_print_closepath( m_gpc ); - gs_lgp->gnome_print_stroke( m_gpc ); + gs_libGnomePrint->gnome_print_stroke( m_gpc ); } CalcBoundingBox (x1, y1); @@ -1073,11 +1072,11 @@ void wxGnomePrintDC::DoDrawEllipticArc(wxCoord x,wxCoord y,wxCoord w,wxCoord h,d int xx = XLOG2DEV(x); int yy = YLOG2DEV(y); - gs_lgp->gnome_print_gsave( m_gpc ); + gs_libGnomePrint->gnome_print_gsave( m_gpc ); - gs_lgp->gnome_print_translate( m_gpc, xx, yy ); + gs_libGnomePrint->gnome_print_translate( m_gpc, xx, yy ); double scale = (double)YLOG2DEVREL(h) / (double) XLOG2DEVREL(w); - gs_lgp->gnome_print_scale( m_gpc, 1.0, scale ); + gs_libGnomePrint->gnome_print_scale( m_gpc, 1.0, scale ); xx = 0; yy = 0; @@ -1086,25 +1085,25 @@ void wxGnomePrintDC::DoDrawEllipticArc(wxCoord x,wxCoord y,wxCoord w,wxCoord h,d { SetBrush( m_brush ); - gs_lgp->gnome_print_moveto ( m_gpc, xx, yy ); - gs_lgp->gnome_print_arcto( m_gpc, xx, yy, + gs_libGnomePrint->gnome_print_moveto ( m_gpc, xx, yy ); + gs_libGnomePrint->gnome_print_arcto( m_gpc, xx, yy, XLOG2DEVREL(w)/2, sa, ea, 0 ); - gs_lgp->gnome_print_moveto ( m_gpc, xx, yy ); + gs_libGnomePrint->gnome_print_moveto ( m_gpc, xx, yy ); - gs_lgp->gnome_print_fill( m_gpc ); + gs_libGnomePrint->gnome_print_fill( m_gpc ); } if (m_pen.GetStyle () != wxTRANSPARENT) { SetPen (m_pen); - gs_lgp->gnome_print_arcto( m_gpc, xx, yy, + gs_libGnomePrint->gnome_print_arcto( m_gpc, xx, yy, XLOG2DEVREL(w)/2, sa, ea, 0 ); - gs_lgp->gnome_print_stroke( m_gpc ); + gs_libGnomePrint->gnome_print_stroke( m_gpc ); } - gs_lgp->gnome_print_grestore( m_gpc ); + gs_libGnomePrint->gnome_print_grestore( m_gpc ); CalcBoundingBox( x, y ); CalcBoundingBox( x+w, y+h ); @@ -1126,12 +1125,12 @@ void wxGnomePrintDC::DoDrawLines(int n, wxPoint points[], wxCoord xoffset, wxCoo for ( i =0; ignome_print_moveto ( m_gpc, XLOG2DEV(points[0].x+xoffset), YLOG2DEV(points[0].y+yoffset) ); + gs_libGnomePrint->gnome_print_moveto ( m_gpc, XLOG2DEV(points[0].x+xoffset), YLOG2DEV(points[0].y+yoffset) ); for (i = 1; i < n; i++) - gs_lgp->gnome_print_lineto ( m_gpc, XLOG2DEV(points[i].x+xoffset), YLOG2DEV(points[i].y+yoffset) ); + gs_libGnomePrint->gnome_print_lineto ( m_gpc, XLOG2DEV(points[i].x+xoffset), YLOG2DEV(points[i].y+yoffset) ); - gs_lgp->gnome_print_stroke ( m_gpc); + gs_libGnomePrint->gnome_print_stroke ( m_gpc); } void wxGnomePrintDC::DoDrawPolygon(int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset, int fillStyle) @@ -1145,18 +1144,18 @@ void wxGnomePrintDC::DoDrawPolygon(int n, wxPoint points[], wxCoord xoffset, wxC int x = points[0].x + xoffset; int y = points[0].y + yoffset; CalcBoundingBox( x, y ); - gs_lgp->gnome_print_newpath( m_gpc ); - gs_lgp->gnome_print_moveto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); + gs_libGnomePrint->gnome_print_newpath( m_gpc ); + gs_libGnomePrint->gnome_print_moveto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); int i; for (i = 1; i < n; i++) { int x = points[i].x + xoffset; int y = points[i].y + yoffset; - gs_lgp->gnome_print_lineto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); + gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); CalcBoundingBox( x, y ); } - gs_lgp->gnome_print_closepath( m_gpc ); - gs_lgp->gnome_print_fill( m_gpc ); + gs_libGnomePrint->gnome_print_closepath( m_gpc ); + gs_libGnomePrint->gnome_print_fill( m_gpc ); } if (m_pen.GetStyle () != wxTRANSPARENT) @@ -1165,18 +1164,18 @@ void wxGnomePrintDC::DoDrawPolygon(int n, wxPoint points[], wxCoord xoffset, wxC int x = points[0].x + xoffset; int y = points[0].y + yoffset; - gs_lgp->gnome_print_newpath( m_gpc ); - gs_lgp->gnome_print_moveto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); + gs_libGnomePrint->gnome_print_newpath( m_gpc ); + gs_libGnomePrint->gnome_print_moveto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); int i; for (i = 1; i < n; i++) { int x = points[i].x + xoffset; int y = points[i].y + yoffset; - gs_lgp->gnome_print_lineto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); + gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); CalcBoundingBox( x, y ); } - gs_lgp->gnome_print_closepath( m_gpc ); - gs_lgp->gnome_print_stroke( m_gpc ); + gs_libGnomePrint->gnome_print_closepath( m_gpc ); + gs_libGnomePrint->gnome_print_stroke( m_gpc ); } } @@ -1191,13 +1190,13 @@ void wxGnomePrintDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoor { SetBrush( m_brush ); - gs_lgp->gnome_print_newpath( m_gpc ); - gs_lgp->gnome_print_moveto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); - gs_lgp->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y) ); - gs_lgp->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y + height) ); - gs_lgp->gnome_print_lineto( m_gpc, XLOG2DEV(x), YLOG2DEV(y + height) ); - gs_lgp->gnome_print_closepath( m_gpc ); - gs_lgp->gnome_print_fill( m_gpc ); + gs_libGnomePrint->gnome_print_newpath( m_gpc ); + gs_libGnomePrint->gnome_print_moveto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); + gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y) ); + gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y + height) ); + gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV(x), YLOG2DEV(y + height) ); + gs_libGnomePrint->gnome_print_closepath( m_gpc ); + gs_libGnomePrint->gnome_print_fill( m_gpc ); CalcBoundingBox( x, y ); CalcBoundingBox( x + width, y + height ); @@ -1207,13 +1206,13 @@ void wxGnomePrintDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoor { SetPen (m_pen); - gs_lgp->gnome_print_newpath( m_gpc ); - gs_lgp->gnome_print_moveto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); - gs_lgp->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y) ); - gs_lgp->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y + height) ); - gs_lgp->gnome_print_lineto( m_gpc, XLOG2DEV(x), YLOG2DEV(y + height) ); - gs_lgp->gnome_print_closepath( m_gpc ); - gs_lgp->gnome_print_stroke( m_gpc ); + gs_libGnomePrint->gnome_print_newpath( m_gpc ); + gs_libGnomePrint->gnome_print_moveto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); + gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y) ); + gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y + height) ); + gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV(x), YLOG2DEV(y + height) ); + gs_libGnomePrint->gnome_print_closepath( m_gpc ); + gs_libGnomePrint->gnome_print_stroke( m_gpc ); CalcBoundingBox( x, y ); CalcBoundingBox( x + width, y + height ); @@ -1227,30 +1226,30 @@ void wxGnomePrintDC::DoDrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, if (m_brush.GetStyle() != wxTRANSPARENT) { SetBrush(m_brush); - gs_lgp->gnome_print_newpath(m_gpc); - gs_lgp->gnome_print_moveto(m_gpc,XLOG2DEV(x + rad),YLOG2DEV(y)); - gs_lgp->gnome_print_curveto(m_gpc, + gs_libGnomePrint->gnome_print_newpath(m_gpc); + gs_libGnomePrint->gnome_print_moveto(m_gpc,XLOG2DEV(x + rad),YLOG2DEV(y)); + gs_libGnomePrint->gnome_print_curveto(m_gpc, XLOG2DEV(x + rad),YLOG2DEV(y), XLOG2DEV(x),YLOG2DEV(y), XLOG2DEV(x),YLOG2DEV(y + rad)); - gs_lgp->gnome_print_lineto(m_gpc,XLOG2DEV(x),YLOG2DEV(y + height - rad)); - gs_lgp->gnome_print_curveto(m_gpc, + gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x),YLOG2DEV(y + height - rad)); + gs_libGnomePrint->gnome_print_curveto(m_gpc, XLOG2DEV(x),YLOG2DEV(y + height - rad), XLOG2DEV(x),YLOG2DEV(y + height), XLOG2DEV(x + rad),YLOG2DEV(y + height)); - gs_lgp->gnome_print_lineto(m_gpc,XLOG2DEV(x + width - rad),YLOG2DEV(y + height)); - gs_lgp->gnome_print_curveto(m_gpc, + gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x + width - rad),YLOG2DEV(y + height)); + gs_libGnomePrint->gnome_print_curveto(m_gpc, XLOG2DEV(x + width - rad),YLOG2DEV(y + height), XLOG2DEV(x + width),YLOG2DEV(y + height), XLOG2DEV(x + width),YLOG2DEV(y + height - rad)); - gs_lgp->gnome_print_lineto(m_gpc,XLOG2DEV(x + width),YLOG2DEV(y + rad)); - gs_lgp->gnome_print_curveto(m_gpc, + gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x + width),YLOG2DEV(y + rad)); + gs_libGnomePrint->gnome_print_curveto(m_gpc, XLOG2DEV(x + width),YLOG2DEV(y + rad), XLOG2DEV(x + width),YLOG2DEV(y), XLOG2DEV(x + width - rad),YLOG2DEV(y)); - gs_lgp->gnome_print_lineto(m_gpc,XLOG2DEV(x + rad),YLOG2DEV(y)); - gs_lgp->gnome_print_closepath(m_gpc); - gs_lgp->gnome_print_fill(m_gpc); + gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x + rad),YLOG2DEV(y)); + gs_libGnomePrint->gnome_print_closepath(m_gpc); + gs_libGnomePrint->gnome_print_fill(m_gpc); CalcBoundingBox(x,y); CalcBoundingBox(x+width,y+height); @@ -1259,30 +1258,30 @@ void wxGnomePrintDC::DoDrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, if (m_pen.GetStyle() != wxTRANSPARENT) { SetPen(m_pen); - gs_lgp->gnome_print_newpath(m_gpc); - gs_lgp->gnome_print_moveto(m_gpc,XLOG2DEV(x + rad),YLOG2DEV(y)); - gs_lgp->gnome_print_curveto(m_gpc, + gs_libGnomePrint->gnome_print_newpath(m_gpc); + gs_libGnomePrint->gnome_print_moveto(m_gpc,XLOG2DEV(x + rad),YLOG2DEV(y)); + gs_libGnomePrint->gnome_print_curveto(m_gpc, XLOG2DEV(x + rad),YLOG2DEV(y), XLOG2DEV(x),YLOG2DEV(y), XLOG2DEV(x),YLOG2DEV(y + rad)); - gs_lgp->gnome_print_lineto(m_gpc,XLOG2DEV(x),YLOG2DEV(y + height - rad)); - gs_lgp->gnome_print_curveto(m_gpc, + gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x),YLOG2DEV(y + height - rad)); + gs_libGnomePrint->gnome_print_curveto(m_gpc, XLOG2DEV(x),YLOG2DEV(y + height - rad), XLOG2DEV(x),YLOG2DEV(y + height), XLOG2DEV(x + rad),YLOG2DEV(y + height)); - gs_lgp->gnome_print_lineto(m_gpc,XLOG2DEV(x + width - rad),YLOG2DEV(y + height)); - gs_lgp->gnome_print_curveto(m_gpc, + gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x + width - rad),YLOG2DEV(y + height)); + gs_libGnomePrint->gnome_print_curveto(m_gpc, XLOG2DEV(x + width - rad),YLOG2DEV(y + height), XLOG2DEV(x + width),YLOG2DEV(y + height), XLOG2DEV(x + width),YLOG2DEV(y + height - rad)); - gs_lgp->gnome_print_lineto(m_gpc,XLOG2DEV(x + width),YLOG2DEV(y + rad)); - gs_lgp->gnome_print_curveto(m_gpc, + gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x + width),YLOG2DEV(y + rad)); + gs_libGnomePrint->gnome_print_curveto(m_gpc, XLOG2DEV(x + width),YLOG2DEV(y + rad), XLOG2DEV(x + width),YLOG2DEV(y), XLOG2DEV(x + width - rad),YLOG2DEV(y)); - gs_lgp->gnome_print_lineto(m_gpc,XLOG2DEV(x + rad),YLOG2DEV(y)); - gs_lgp->gnome_print_closepath(m_gpc); - gs_lgp->gnome_print_stroke(m_gpc); + gs_libGnomePrint->gnome_print_lineto(m_gpc,XLOG2DEV(x + rad),YLOG2DEV(y)); + gs_libGnomePrint->gnome_print_closepath(m_gpc); + gs_libGnomePrint->gnome_print_stroke(m_gpc); CalcBoundingBox(x,y); CalcBoundingBox(x+width,y+height); @@ -1300,39 +1299,39 @@ void wxGnomePrintDC::makeEllipticalPath(wxCoord x, wxCoord y, wxCoord halfWI = (wxCoord) halfW, halfHI = (wxCoord) halfH; - gs_lgp->gnome_print_newpath( m_gpc ); + gs_libGnomePrint->gnome_print_newpath( m_gpc ); // Approximate an ellipse using four cubic splines, clockwise from 0 deg */ - gs_lgp->gnome_print_moveto( m_gpc, + gs_libGnomePrint->gnome_print_moveto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y + halfHI) ); - gs_lgp->gnome_print_curveto( m_gpc, + gs_libGnomePrint->gnome_print_curveto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y + (wxCoord) rint (halfH + halfHR)), XLOG2DEV(x + (wxCoord) rint(halfW + halfWR)), YLOG2DEV(y + height), XLOG2DEV(x + halfWI), YLOG2DEV(y + height) ); - gs_lgp->gnome_print_curveto( m_gpc, + gs_libGnomePrint->gnome_print_curveto( m_gpc, XLOG2DEV(x + (wxCoord) rint(halfW - halfWR)), YLOG2DEV(y + height), XLOG2DEV(x), YLOG2DEV(y + (wxCoord) rint (halfH + halfHR)), XLOG2DEV(x), YLOG2DEV(y+halfHI) ); - gs_lgp->gnome_print_curveto( m_gpc, + gs_libGnomePrint->gnome_print_curveto( m_gpc, XLOG2DEV(x), YLOG2DEV(y + (wxCoord) rint (halfH - halfHR)), XLOG2DEV(x + (wxCoord) rint (halfW - halfWR)), YLOG2DEV(y), XLOG2DEV(x+halfWI), YLOG2DEV(y) ); - gs_lgp->gnome_print_curveto( m_gpc, + gs_libGnomePrint->gnome_print_curveto( m_gpc, XLOG2DEV(x + (wxCoord) rint(halfW + halfWR)), YLOG2DEV(y), XLOG2DEV(x + width), YLOG2DEV(y + (wxCoord) rint(halfH - halfHR)), XLOG2DEV(x + width), YLOG2DEV(y + halfHI) ); - gs_lgp->gnome_print_closepath(m_gpc); + gs_libGnomePrint->gnome_print_closepath(m_gpc); } void wxGnomePrintDC::DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height) @@ -1341,7 +1340,7 @@ void wxGnomePrintDC::DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord { SetBrush( m_brush ); makeEllipticalPath( x, y, width, height ); - gs_lgp->gnome_print_fill( m_gpc ); + gs_libGnomePrint->gnome_print_fill( m_gpc ); CalcBoundingBox( x, y ); CalcBoundingBox( x + width, y + height ); } @@ -1350,7 +1349,7 @@ void wxGnomePrintDC::DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord { SetPen (m_pen); makeEllipticalPath( x, y, width, height ); - gs_lgp->gnome_print_stroke( m_gpc ); + gs_libGnomePrint->gnome_print_stroke( m_gpc ); CalcBoundingBox( x, y ); CalcBoundingBox( x + width, y + height ); } @@ -1378,9 +1377,9 @@ void wxGnomePrintDC::DoDrawSpline(wxList *points) y3 = (double)(y1 + d) / 2; - gs_lgp->gnome_print_newpath( m_gpc ); - gs_lgp->gnome_print_moveto( m_gpc, XLOG2DEV((wxCoord)x1), YLOG2DEV((wxCoord)y1) ); - gs_lgp->gnome_print_lineto( m_gpc, XLOG2DEV((wxCoord)x3), YLOG2DEV((wxCoord)y3) ); + gs_libGnomePrint->gnome_print_newpath( m_gpc ); + gs_libGnomePrint->gnome_print_moveto( m_gpc, XLOG2DEV((wxCoord)x1), YLOG2DEV((wxCoord)y1) ); + gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV((wxCoord)x3), YLOG2DEV((wxCoord)y3) ); CalcBoundingBox( (wxCoord)x1, (wxCoord)y1 ); CalcBoundingBox( (wxCoord)x3, (wxCoord)y3 ); @@ -1399,7 +1398,7 @@ void wxGnomePrintDC::DoDrawSpline(wxList *points) x3 = (double)(x2 + c) / 2; y3 = (double)(y2 + d) / 2; - gs_lgp->gnome_print_curveto(m_gpc, + gs_libGnomePrint->gnome_print_curveto(m_gpc, XLOG2DEV((wxCoord)x1), YLOG2DEV((wxCoord)y1), XLOG2DEV((wxCoord)x2), YLOG2DEV((wxCoord)y2), XLOG2DEV((wxCoord)x3), YLOG2DEV((wxCoord)y3) ); @@ -1410,9 +1409,9 @@ void wxGnomePrintDC::DoDrawSpline(wxList *points) node = node->GetNext(); } - gs_lgp->gnome_print_lineto ( m_gpc, XLOG2DEV((wxCoord)c), YLOG2DEV((wxCoord)d) ); + gs_libGnomePrint->gnome_print_lineto ( m_gpc, XLOG2DEV((wxCoord)c), YLOG2DEV((wxCoord)d) ); - gs_lgp->gnome_print_stroke( m_gpc ); + gs_libGnomePrint->gnome_print_stroke( m_gpc ); } #endif // wxUSE_SPLINES @@ -1453,7 +1452,7 @@ void wxGnomePrintDC::DoDrawBitmap( const wxBitmap& bitmap, wxCoord x, wxCoord y, int height = gdk_pixbuf_get_height( pixbuf ); int width = gdk_pixbuf_get_width( pixbuf ); - gs_lgp->gnome_print_gsave( m_gpc ); + gs_libGnomePrint->gnome_print_gsave( m_gpc ); double matrix[6]; matrix[0] = XLOG2DEVREL(width); matrix[1] = 0; @@ -1461,13 +1460,13 @@ void wxGnomePrintDC::DoDrawBitmap( const wxBitmap& bitmap, wxCoord x, wxCoord y, matrix[3] = YLOG2DEVREL(height); matrix[4] = XLOG2DEV(x); matrix[5] = YLOG2DEV(y+height); - gs_lgp->gnome_print_concat( m_gpc, matrix ); - gs_lgp->gnome_print_moveto( m_gpc, 0, 0 ); + gs_libGnomePrint->gnome_print_concat( m_gpc, matrix ); + gs_libGnomePrint->gnome_print_moveto( m_gpc, 0, 0 ); if (has_alpha) - gs_lgp->gnome_print_rgbaimage( m_gpc, (guchar *)raw_image, width, height, rowstride ); + gs_libGnomePrint->gnome_print_rgbaimage( m_gpc, (guchar *)raw_image, width, height, rowstride ); else - gs_lgp->gnome_print_rgbimage( m_gpc, (guchar *)raw_image, width, height, rowstride ); - gs_lgp->gnome_print_grestore( m_gpc ); + gs_libGnomePrint->gnome_print_rgbimage( m_gpc, (guchar *)raw_image, width, height, rowstride ); + gs_libGnomePrint->gnome_print_grestore( m_gpc ); } else { @@ -1475,7 +1474,7 @@ void wxGnomePrintDC::DoDrawBitmap( const wxBitmap& bitmap, wxCoord x, wxCoord y, if (!image.Ok()) return; - gs_lgp->gnome_print_gsave( m_gpc ); + gs_libGnomePrint->gnome_print_gsave( m_gpc ); double matrix[6]; matrix[0] = XLOG2DEVREL(image.GetWidth()); matrix[1] = 0; @@ -1483,10 +1482,10 @@ void wxGnomePrintDC::DoDrawBitmap( const wxBitmap& bitmap, wxCoord x, wxCoord y, matrix[3] = YLOG2DEVREL(image.GetHeight()); matrix[4] = XLOG2DEV(x); matrix[5] = YLOG2DEV(y+image.GetHeight()); - gs_lgp->gnome_print_concat( m_gpc, matrix ); - gs_lgp->gnome_print_moveto( m_gpc, 0, 0 ); - gs_lgp->gnome_print_rgbimage( m_gpc, (guchar*) image.GetData(), image.GetWidth(), image.GetHeight(), image.GetWidth()*3 ); - gs_lgp->gnome_print_grestore( m_gpc ); + gs_libGnomePrint->gnome_print_concat( m_gpc, matrix ); + gs_libGnomePrint->gnome_print_moveto( m_gpc, 0, 0 ); + gs_libGnomePrint->gnome_print_rgbimage( m_gpc, (guchar*) image.GetData(), image.GetWidth(), image.GetHeight(), image.GetWidth()*3 ); + gs_libGnomePrint->gnome_print_grestore( m_gpc ); } } @@ -1535,7 +1534,7 @@ void wxGnomePrintDC::DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord double bluePS = (double)(blue) / 255.0; double greenPS = (double)(green) / 255.0; - gs_lgp->gnome_print_setrgbcolor( m_gpc, redPS, greenPS, bluePS ); + gs_libGnomePrint->gnome_print_setrgbcolor( m_gpc, redPS, greenPS, bluePS ); m_currentRed = red; m_currentBlue = blue; @@ -1569,17 +1568,17 @@ void wxGnomePrintDC::DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord } #endif // Draw layout. - gs_lgp->gnome_print_moveto (m_gpc, x, y); + gs_libGnomePrint->gnome_print_moveto (m_gpc, x, y); if (fabs(angle) > 0.00001) { - gs_lgp->gnome_print_gsave( m_gpc ); - gs_lgp->gnome_print_rotate( m_gpc, angle ); - gs_lgp->gnome_print_pango_layout( m_gpc, m_layout ); - gs_lgp->gnome_print_grestore( m_gpc ); + gs_libGnomePrint->gnome_print_gsave( m_gpc ); + gs_libGnomePrint->gnome_print_rotate( m_gpc, angle ); + gs_libGnomePrint->gnome_print_pango_layout( m_gpc, m_layout ); + gs_libGnomePrint->gnome_print_grestore( m_gpc ); } else { - gs_lgp->gnome_print_pango_layout( m_gpc, m_layout ); + gs_libGnomePrint->gnome_print_pango_layout( m_gpc, m_layout ); } // reset unscaled size @@ -1600,17 +1599,17 @@ void wxGnomePrintDC::DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord } #endif // Draw layout. - gs_lgp->gnome_print_moveto (m_gpc, x, y); + gs_libGnomePrint->gnome_print_moveto (m_gpc, x, y); if (fabs(angle) > 0.00001) { - gs_lgp->gnome_print_gsave( m_gpc ); - gs_lgp->gnome_print_rotate( m_gpc, angle ); - gs_lgp->gnome_print_pango_layout( m_gpc, m_layout ); - gs_lgp->gnome_print_grestore( m_gpc ); + gs_libGnomePrint->gnome_print_gsave( m_gpc ); + gs_libGnomePrint->gnome_print_rotate( m_gpc, angle ); + gs_libGnomePrint->gnome_print_pango_layout( m_gpc, m_layout ); + gs_libGnomePrint->gnome_print_grestore( m_gpc ); } else { - gs_lgp->gnome_print_pango_layout( m_gpc, m_layout ); + gs_libGnomePrint->gnome_print_pango_layout( m_gpc, m_layout ); } } @@ -1648,7 +1647,7 @@ void wxGnomePrintDC::SetPen( const wxPen& pen ) m_pen = pen; - gs_lgp->gnome_print_setlinewidth( m_gpc, XLOG2DEVREL( 1000 * m_pen.GetWidth() ) / 1000.0f ); + gs_libGnomePrint->gnome_print_setlinewidth( m_gpc, XLOG2DEVREL( 1000 * m_pen.GetWidth() ) / 1000.0f ); static const double dotted[] = {2.0, 5.0}; static const double short_dashed[] = {4.0, 4.0}; @@ -1657,10 +1656,10 @@ void wxGnomePrintDC::SetPen( const wxPen& pen ) switch (m_pen.GetStyle()) { - case wxDOT: gs_lgp->gnome_print_setdash( m_gpc, 2, dotted, 0 ); break; - case wxSHORT_DASH: gs_lgp->gnome_print_setdash( m_gpc, 2, short_dashed, 0 ); break; - case wxLONG_DASH: gs_lgp->gnome_print_setdash( m_gpc, 2, wxCoord_dashed, 0 ); break; - case wxDOT_DASH: gs_lgp->gnome_print_setdash( m_gpc, 4, dotted_dashed, 0 ); break; + case wxDOT: gs_libGnomePrint->gnome_print_setdash( m_gpc, 2, dotted, 0 ); break; + case wxSHORT_DASH: gs_libGnomePrint->gnome_print_setdash( m_gpc, 2, short_dashed, 0 ); break; + case wxLONG_DASH: gs_libGnomePrint->gnome_print_setdash( m_gpc, 2, wxCoord_dashed, 0 ); break; + case wxDOT_DASH: gs_libGnomePrint->gnome_print_setdash( m_gpc, 4, dotted_dashed, 0 ); break; case wxUSER_DASH: { // It may be noted that libgnomeprint between at least @@ -1673,13 +1672,13 @@ void wxGnomePrintDC::SetPen( const wxPen& pen ) int i; for (i = 0; i < num; ++i) g_dashes[i] = (gdouble) wx_dashes[i]; - gs_lgp -> gnome_print_setdash( m_gpc, num, g_dashes, 0); + gs_libGnomePrint -> gnome_print_setdash( m_gpc, num, g_dashes, 0); g_free( g_dashes ); } break; case wxSOLID: case wxTRANSPARENT: - default: gs_lgp->gnome_print_setdash( m_gpc, 0, NULL, 0 ); break; + default: gs_libGnomePrint->gnome_print_setdash( m_gpc, 0, NULL, 0 ); break; } @@ -1693,7 +1692,7 @@ void wxGnomePrintDC::SetPen( const wxPen& pen ) double bluePS = (double)(blue) / 255.0; double greenPS = (double)(green) / 255.0; - gs_lgp->gnome_print_setrgbcolor( m_gpc, redPS, greenPS, bluePS ); + gs_libGnomePrint->gnome_print_setrgbcolor( m_gpc, redPS, greenPS, bluePS ); m_currentRed = red; m_currentBlue = blue; @@ -1732,7 +1731,7 @@ void wxGnomePrintDC::SetBrush( const wxBrush& brush ) double bluePS = (double)(blue) / 255.0; double greenPS = (double)(green) / 255.0; - gs_lgp->gnome_print_setrgbcolor( m_gpc, redPS, greenPS, bluePS ); + gs_libGnomePrint->gnome_print_setrgbcolor( m_gpc, redPS, greenPS, bluePS ); m_currentRed = red; m_currentBlue = blue; @@ -1752,22 +1751,22 @@ void wxGnomePrintDC::DoSetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wx { wxDC::DoSetClippingRegion( x, y, width, height ); - gs_lgp->gnome_print_gsave( m_gpc ); + gs_libGnomePrint->gnome_print_gsave( m_gpc ); - gs_lgp->gnome_print_newpath( m_gpc ); - gs_lgp->gnome_print_moveto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); - gs_lgp->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y) ); - gs_lgp->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y + height) ); - gs_lgp->gnome_print_lineto( m_gpc, XLOG2DEV(x), YLOG2DEV(y + height) ); - gs_lgp->gnome_print_closepath( m_gpc ); - gs_lgp->gnome_print_clip( m_gpc ); + gs_libGnomePrint->gnome_print_newpath( m_gpc ); + gs_libGnomePrint->gnome_print_moveto( m_gpc, XLOG2DEV(x), YLOG2DEV(y) ); + gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y) ); + gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV(x + width), YLOG2DEV(y + height) ); + gs_libGnomePrint->gnome_print_lineto( m_gpc, XLOG2DEV(x), YLOG2DEV(y + height) ); + gs_libGnomePrint->gnome_print_closepath( m_gpc ); + gs_libGnomePrint->gnome_print_clip( m_gpc ); } void wxGnomePrintDC::DestroyClippingRegion() { wxDC::DestroyClippingRegion(); - gs_lgp->gnome_print_grestore( m_gpc ); + gs_libGnomePrint->gnome_print_grestore( m_gpc ); #if 0 // not needed, we set the values in each @@ -1785,17 +1784,17 @@ bool wxGnomePrintDC::StartDoc(const wxString& message) void wxGnomePrintDC::EndDoc() { - gs_lgp->gnome_print_end_doc( m_gpc ); + gs_libGnomePrint->gnome_print_end_doc( m_gpc ); } void wxGnomePrintDC::StartPage() { - gs_lgp->gnome_print_beginpage( m_gpc, (const guchar*) "page" ); + gs_libGnomePrint->gnome_print_beginpage( m_gpc, (const guchar*) "page" ); } void wxGnomePrintDC::EndPage() { - gs_lgp->gnome_print_showpage( m_gpc ); + gs_libGnomePrint->gnome_print_showpage( m_gpc ); } wxCoord wxGnomePrintDC::GetCharHeight() const @@ -1889,7 +1888,7 @@ void wxGnomePrintDC::DoGetSize(int* width, int* height) const // Query page size. This seems to omit the margins double pw,ph; - gs_lgp->gnome_print_job_get_page_size( native->GetPrintJob(), &pw, &ph ); + gs_libGnomePrint->gnome_print_job_get_page_size( native->GetPrintJob(), &pw, &ph ); if (width) *width = (int) (pw + 0.5); @@ -1905,14 +1904,14 @@ void wxGnomePrintDC::DoGetSizeMM(int *width, int *height) const // This code assumes values in Pts. double pw,ph; - gs_lgp->gnome_print_job_get_page_size( native->GetPrintJob(), &pw, &ph ); + gs_libGnomePrint->gnome_print_job_get_page_size( native->GetPrintJob(), &pw, &ph ); // Convert to mm. - const GnomePrintUnit *mm_unit = gs_lgp->gnome_print_unit_get_by_abbreviation( (const guchar*) "mm" ); - const GnomePrintUnit *pts_unit = gs_lgp->gnome_print_unit_get_by_abbreviation( (const guchar*) "Pts" ); - gs_lgp->gnome_print_convert_distance( &pw, pts_unit, mm_unit ); - gs_lgp->gnome_print_convert_distance( &ph, pts_unit, mm_unit ); + const GnomePrintUnit *mm_unit = gs_libGnomePrint->gnome_print_unit_get_by_abbreviation( (const guchar*) "mm" ); + const GnomePrintUnit *pts_unit = gs_libGnomePrint->gnome_print_unit_get_by_abbreviation( (const guchar*) "Pts" ); + gs_libGnomePrint->gnome_print_convert_distance( &pw, pts_unit, mm_unit ); + gs_libGnomePrint->gnome_print_convert_distance( &ph, pts_unit, mm_unit ); if (width) *width = (int) (pw + 0.5); @@ -1968,15 +1967,16 @@ int wxGnomePrintDC::GetResolution() bool wxGnomePrintModule::OnInit() { - gs_lgp = new wxGnomePrintLibrary; - if (gs_lgp->IsOk()) + gs_libGnomePrint = new wxGnomePrintLibrary; + if (gs_libGnomePrint->IsOk()) wxPrintFactory::SetPrintFactory( new wxGnomePrintFactory ); return true; } void wxGnomePrintModule::OnExit() { - delete gs_lgp; + delete gs_libGnomePrint; + gs_libGnomePrint = NULL; } IMPLEMENT_DYNAMIC_CLASS(wxGnomePrintModule, wxModule) @@ -2072,5 +2072,4 @@ void wxGnomePrintPreview::DetermineScaling() } } -#endif - // wxUSE_LIBGNOMEPRINT +#endif // wxUSE_LIBGNOMEPRINT diff --git a/src/gtk/gnome/gvfs.cpp b/src/gtk/gnome/gvfs.cpp index 7e44a62b6c..0651c72f82 100644 --- a/src/gtk/gnome/gvfs.cpp +++ b/src/gtk/gnome/gvfs.cpp @@ -42,12 +42,16 @@ public: wxGnomeVFSLibrary(); ~wxGnomeVFSLibrary(); +private: bool IsOk(); - void InitializeMethods(); + bool InitializeMethods(); -private: - bool m_ok; - wxDynamicLibrary *m_gnome_vfs_lib; + wxDynamicLibrary m_libGnomeVFS; + + // only true if we successfully loaded the library above + // + // don't rename this field, it's used by wxDL_XXX macros internally + bool m_ok; public: wxDL_METHOD_DEFINE( gboolean, gnome_vfs_init, @@ -61,21 +65,14 @@ public: wxGnomeVFSLibrary::wxGnomeVFSLibrary() { - m_gnome_vfs_lib = NULL; - wxLogNull log; - m_gnome_vfs_lib = new wxDynamicLibrary( wxT("libgnomevfs-2.so.0") ); - m_ok = m_gnome_vfs_lib->IsLoaded(); - if (!m_ok) return; - - InitializeMethods(); + m_libGnomeVFS.Load("libgnomevfs-2.so.0"); + m_ok = m_libGnomeVFS.IsLoaded() && InitializeMethods(); } wxGnomeVFSLibrary::~wxGnomeVFSLibrary() { - if (m_gnome_vfs_lib) - delete m_gnome_vfs_lib; } bool wxGnomeVFSLibrary::IsOk() @@ -83,15 +80,12 @@ bool wxGnomeVFSLibrary::IsOk() return m_ok; } -void wxGnomeVFSLibrary::InitializeMethods() +bool wxGnomeVFSLibrary::InitializeMethods() { - m_ok = false; - bool success; - - wxDL_METHOD_LOAD( m_gnome_vfs_lib, gnome_vfs_init, success ) - wxDL_METHOD_LOAD( m_gnome_vfs_lib, gnome_vfs_shutdown, success ) + wxDL_METHOD_LOAD( m_libGnomeVFS, gnome_vfs_init ) + wxDL_METHOD_LOAD( m_libGnomeVFS, gnome_vfs_shutdown ) - m_ok = true; + return true; } static wxGnomeVFSLibrary* gs_lgvfs = NULL; @@ -166,6 +160,4 @@ void wxGnomeVFSModule::OnExit() IMPLEMENT_DYNAMIC_CLASS(wxGnomeVFSModule, wxModule) -#endif - // wxUSE_LIBGNOMEVFS - // wxUSE_MIMETYPE +#endif // wxUSE_LIBGNOMEVFS && wxUSE_MIMETYPE diff --git a/src/msw/mediactrl.cpp b/src/msw/mediactrl.cpp index 276fc89b29..8a89ce2063 100644 --- a/src/msw/mediactrl.cpp +++ b/src/msw/mediactrl.cpp @@ -1775,76 +1775,71 @@ public: bool wxQuickTimeLibrary::Initialize() { - m_ok = false; - // Turn off the wxDynamicLibrary logging as we're prepared to handle the // errors wxLogNull nolog; - if (!m_dll.Load(wxT("qtmlClient.dll"))) - { + m_ok = m_dll.Load(wxT("qtmlClient.dll")); + if ( !m_ok ) return false; - } - wxDL_METHOD_LOAD( m_dll, StartMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, StopMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, IsMovieDone, m_ok ); - wxDL_METHOD_LOAD( m_dll, GoToBeginningOfMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMoviesError, m_ok ); - wxDL_METHOD_LOAD( m_dll, EnterMovies, m_ok ); - wxDL_METHOD_LOAD( m_dll, ExitMovies, m_ok ); - wxDL_METHOD_LOAD( m_dll, InitializeQTML, m_ok ); - wxDL_METHOD_LOAD( m_dll, TerminateQTML, m_ok ); - wxDL_METHOD_LOAD( m_dll, NativePathNameToFSSpec, m_ok ); - wxDL_METHOD_LOAD( m_dll, OpenMovieFile, m_ok ); - wxDL_METHOD_LOAD( m_dll, CloseMovieFile, m_ok ); - wxDL_METHOD_LOAD( m_dll, NewMovieFromFile, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieRate, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieRate, m_ok ); - wxDL_METHOD_LOAD( m_dll, MoviesTask, m_ok ); - wxDL_METHOD_LOAD( m_dll, BlockMove, m_ok ); - wxDL_METHOD_LOAD( m_dll, NewHandleClear, m_ok ); - wxDL_METHOD_LOAD( m_dll, NewMovieFromDataRef, m_ok ); - wxDL_METHOD_LOAD( m_dll, DisposeHandle, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieNaturalBoundsRect, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieIndTrackType, m_ok ); - wxDL_METHOD_LOAD( m_dll, CreatePortAssociation, m_ok ); - wxDL_METHOD_LOAD( m_dll, DestroyPortAssociation, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetNativeWindowPort, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieGWorld, m_ok ); - wxDL_METHOD_LOAD( m_dll, DisposeMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieBox, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieTimeScale, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieDuration, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieTimeBase, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieTimeScale, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieTime, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieTime, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieVolume, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieVolume, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieTimeValue, m_ok ); - wxDL_METHOD_LOAD( m_dll, NewMovieController, m_ok ); - wxDL_METHOD_LOAD( m_dll, DisposeMovieController, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCSetVisible, m_ok ); - wxDL_METHOD_LOAD( m_dll, PrePrerollMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, PrerollMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMoviePreferredRate, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieLoadState, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCDoAction, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCSetControllerBoundsRect, m_ok ); - wxDL_METHOD_LOAD( m_dll, NativeEventToMacEvent, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCIsPlayerEvent, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCSetMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCSetActionFilterWithRefCon, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCGetControllerInfo, m_ok ); - wxDL_METHOD_LOAD( m_dll, BeginUpdate, m_ok ); - wxDL_METHOD_LOAD( m_dll, UpdateMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, EndUpdate, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMoviesStickyError, m_ok ); - - m_ok = true; - - return true; + wxDL_METHOD_LOAD( m_dll, StartMovie ); + wxDL_METHOD_LOAD( m_dll, StopMovie ); + wxDL_METHOD_LOAD( m_dll, IsMovieDone ); + wxDL_METHOD_LOAD( m_dll, GoToBeginningOfMovie ); + wxDL_METHOD_LOAD( m_dll, GetMoviesError ); + wxDL_METHOD_LOAD( m_dll, EnterMovies ); + wxDL_METHOD_LOAD( m_dll, ExitMovies ); + wxDL_METHOD_LOAD( m_dll, InitializeQTML ); + wxDL_METHOD_LOAD( m_dll, TerminateQTML ); + wxDL_METHOD_LOAD( m_dll, NativePathNameToFSSpec ); + wxDL_METHOD_LOAD( m_dll, OpenMovieFile ); + wxDL_METHOD_LOAD( m_dll, CloseMovieFile ); + wxDL_METHOD_LOAD( m_dll, NewMovieFromFile ); + wxDL_METHOD_LOAD( m_dll, GetMovieRate ); + wxDL_METHOD_LOAD( m_dll, SetMovieRate ); + wxDL_METHOD_LOAD( m_dll, MoviesTask ); + wxDL_METHOD_LOAD( m_dll, BlockMove ); + wxDL_METHOD_LOAD( m_dll, NewHandleClear ); + wxDL_METHOD_LOAD( m_dll, NewMovieFromDataRef ); + wxDL_METHOD_LOAD( m_dll, DisposeHandle ); + wxDL_METHOD_LOAD( m_dll, GetMovieNaturalBoundsRect ); + wxDL_METHOD_LOAD( m_dll, GetMovieIndTrackType ); + wxDL_METHOD_LOAD( m_dll, CreatePortAssociation ); + wxDL_METHOD_LOAD( m_dll, DestroyPortAssociation ); + wxDL_METHOD_LOAD( m_dll, GetNativeWindowPort ); + wxDL_METHOD_LOAD( m_dll, SetMovieGWorld ); + wxDL_METHOD_LOAD( m_dll, DisposeMovie ); + wxDL_METHOD_LOAD( m_dll, SetMovieBox ); + wxDL_METHOD_LOAD( m_dll, SetMovieTimeScale ); + wxDL_METHOD_LOAD( m_dll, GetMovieDuration ); + wxDL_METHOD_LOAD( m_dll, GetMovieTimeBase ); + wxDL_METHOD_LOAD( m_dll, GetMovieTimeScale ); + wxDL_METHOD_LOAD( m_dll, GetMovieTime ); + wxDL_METHOD_LOAD( m_dll, SetMovieTime ); + wxDL_METHOD_LOAD( m_dll, GetMovieVolume ); + wxDL_METHOD_LOAD( m_dll, SetMovieVolume ); + wxDL_METHOD_LOAD( m_dll, SetMovieTimeValue ); + wxDL_METHOD_LOAD( m_dll, NewMovieController ); + wxDL_METHOD_LOAD( m_dll, DisposeMovieController ); + wxDL_METHOD_LOAD( m_dll, MCSetVisible ); + wxDL_METHOD_LOAD( m_dll, PrePrerollMovie ); + wxDL_METHOD_LOAD( m_dll, PrerollMovie ); + wxDL_METHOD_LOAD( m_dll, GetMoviePreferredRate ); + wxDL_METHOD_LOAD( m_dll, GetMovieLoadState ); + wxDL_METHOD_LOAD( m_dll, MCDoAction ); + wxDL_METHOD_LOAD( m_dll, MCSetControllerBoundsRect ); + wxDL_METHOD_LOAD( m_dll, NativeEventToMacEvent ); + wxDL_METHOD_LOAD( m_dll, MCIsPlayerEvent ); + wxDL_METHOD_LOAD( m_dll, MCSetMovie ); + wxDL_METHOD_LOAD( m_dll, MCSetActionFilterWithRefCon ); + wxDL_METHOD_LOAD( m_dll, MCGetControllerInfo ); + wxDL_METHOD_LOAD( m_dll, BeginUpdate ); + wxDL_METHOD_LOAD( m_dll, UpdateMovie ); + wxDL_METHOD_LOAD( m_dll, EndUpdate ); + wxDL_METHOD_LOAD( m_dll, GetMoviesStickyError ); + + return m_ok; } class WXDLLIMPEXP_MEDIA wxQTMediaBackend : public wxMediaBackendCommonBase diff --git a/src/msw/mediactrl_qt.cpp b/src/msw/mediactrl_qt.cpp index df59e34db5..50a29ba053 100644 --- a/src/msw/mediactrl_qt.cpp +++ b/src/msw/mediactrl_qt.cpp @@ -281,76 +281,71 @@ public: bool wxQuickTimeLibrary::Initialize() { - m_ok = false; - // Turn off the wxDynamicLibrary logging as we're prepared to handle the // errors wxLogNull nolog; - if (!m_dll.Load(wxT("qtmlClient.dll"))) - { + m_ok = m_dll.Load(wxT("qtmlClient.dll")); + if ( !m_ok ) return false; - } - wxDL_METHOD_LOAD( m_dll, StartMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, StopMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, IsMovieDone, m_ok ); - wxDL_METHOD_LOAD( m_dll, GoToBeginningOfMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMoviesError, m_ok ); - wxDL_METHOD_LOAD( m_dll, EnterMovies, m_ok ); - wxDL_METHOD_LOAD( m_dll, ExitMovies, m_ok ); - wxDL_METHOD_LOAD( m_dll, InitializeQTML, m_ok ); - wxDL_METHOD_LOAD( m_dll, TerminateQTML, m_ok ); - wxDL_METHOD_LOAD( m_dll, NativePathNameToFSSpec, m_ok ); - wxDL_METHOD_LOAD( m_dll, OpenMovieFile, m_ok ); - wxDL_METHOD_LOAD( m_dll, CloseMovieFile, m_ok ); - wxDL_METHOD_LOAD( m_dll, NewMovieFromFile, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieRate, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieRate, m_ok ); - wxDL_METHOD_LOAD( m_dll, MoviesTask, m_ok ); - wxDL_METHOD_LOAD( m_dll, BlockMove, m_ok ); - wxDL_METHOD_LOAD( m_dll, NewHandleClear, m_ok ); - wxDL_METHOD_LOAD( m_dll, NewMovieFromDataRef, m_ok ); - wxDL_METHOD_LOAD( m_dll, DisposeHandle, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieNaturalBoundsRect, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieIndTrackType, m_ok ); - wxDL_METHOD_LOAD( m_dll, CreatePortAssociation, m_ok ); - wxDL_METHOD_LOAD( m_dll, DestroyPortAssociation, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetNativeWindowPort, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieGWorld, m_ok ); - wxDL_METHOD_LOAD( m_dll, DisposeMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieBox, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieTimeScale, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieDuration, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieTimeBase, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieTimeScale, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieTime, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieTime, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieVolume, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieVolume, m_ok ); - wxDL_METHOD_LOAD( m_dll, SetMovieTimeValue, m_ok ); - wxDL_METHOD_LOAD( m_dll, NewMovieController, m_ok ); - wxDL_METHOD_LOAD( m_dll, DisposeMovieController, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCSetVisible, m_ok ); - wxDL_METHOD_LOAD( m_dll, PrePrerollMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, PrerollMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMoviePreferredRate, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMovieLoadState, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCDoAction, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCSetControllerBoundsRect, m_ok ); - wxDL_METHOD_LOAD( m_dll, NativeEventToMacEvent, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCIsPlayerEvent, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCSetMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCSetActionFilterWithRefCon, m_ok ); - wxDL_METHOD_LOAD( m_dll, MCGetControllerInfo, m_ok ); - wxDL_METHOD_LOAD( m_dll, BeginUpdate, m_ok ); - wxDL_METHOD_LOAD( m_dll, UpdateMovie, m_ok ); - wxDL_METHOD_LOAD( m_dll, EndUpdate, m_ok ); - wxDL_METHOD_LOAD( m_dll, GetMoviesStickyError, m_ok ); - - m_ok = true; - - return true; + wxDL_METHOD_LOAD( m_dll, StartMovie ); + wxDL_METHOD_LOAD( m_dll, StopMovie ); + wxDL_METHOD_LOAD( m_dll, IsMovieDone ); + wxDL_METHOD_LOAD( m_dll, GoToBeginningOfMovie ); + wxDL_METHOD_LOAD( m_dll, GetMoviesError ); + wxDL_METHOD_LOAD( m_dll, EnterMovies ); + wxDL_METHOD_LOAD( m_dll, ExitMovies ); + wxDL_METHOD_LOAD( m_dll, InitializeQTML ); + wxDL_METHOD_LOAD( m_dll, TerminateQTML ); + wxDL_METHOD_LOAD( m_dll, NativePathNameToFSSpec ); + wxDL_METHOD_LOAD( m_dll, OpenMovieFile ); + wxDL_METHOD_LOAD( m_dll, CloseMovieFile ); + wxDL_METHOD_LOAD( m_dll, NewMovieFromFile ); + wxDL_METHOD_LOAD( m_dll, GetMovieRate ); + wxDL_METHOD_LOAD( m_dll, SetMovieRate ); + wxDL_METHOD_LOAD( m_dll, MoviesTask ); + wxDL_METHOD_LOAD( m_dll, BlockMove ); + wxDL_METHOD_LOAD( m_dll, NewHandleClear ); + wxDL_METHOD_LOAD( m_dll, NewMovieFromDataRef ); + wxDL_METHOD_LOAD( m_dll, DisposeHandle ); + wxDL_METHOD_LOAD( m_dll, GetMovieNaturalBoundsRect ); + wxDL_METHOD_LOAD( m_dll, GetMovieIndTrackType ); + wxDL_METHOD_LOAD( m_dll, CreatePortAssociation ); + wxDL_METHOD_LOAD( m_dll, DestroyPortAssociation ); + wxDL_METHOD_LOAD( m_dll, GetNativeWindowPort ); + wxDL_METHOD_LOAD( m_dll, SetMovieGWorld ); + wxDL_METHOD_LOAD( m_dll, DisposeMovie ); + wxDL_METHOD_LOAD( m_dll, SetMovieBox ); + wxDL_METHOD_LOAD( m_dll, SetMovieTimeScale ); + wxDL_METHOD_LOAD( m_dll, GetMovieDuration ); + wxDL_METHOD_LOAD( m_dll, GetMovieTimeBase ); + wxDL_METHOD_LOAD( m_dll, GetMovieTimeScale ); + wxDL_METHOD_LOAD( m_dll, GetMovieTime ); + wxDL_METHOD_LOAD( m_dll, SetMovieTime ); + wxDL_METHOD_LOAD( m_dll, GetMovieVolume ); + wxDL_METHOD_LOAD( m_dll, SetMovieVolume ); + wxDL_METHOD_LOAD( m_dll, SetMovieTimeValue ); + wxDL_METHOD_LOAD( m_dll, NewMovieController ); + wxDL_METHOD_LOAD( m_dll, DisposeMovieController ); + wxDL_METHOD_LOAD( m_dll, MCSetVisible ); + wxDL_METHOD_LOAD( m_dll, PrePrerollMovie ); + wxDL_METHOD_LOAD( m_dll, PrerollMovie ); + wxDL_METHOD_LOAD( m_dll, GetMoviePreferredRate ); + wxDL_METHOD_LOAD( m_dll, GetMovieLoadState ); + wxDL_METHOD_LOAD( m_dll, MCDoAction ); + wxDL_METHOD_LOAD( m_dll, MCSetControllerBoundsRect ); + wxDL_METHOD_LOAD( m_dll, NativeEventToMacEvent ); + wxDL_METHOD_LOAD( m_dll, MCIsPlayerEvent ); + wxDL_METHOD_LOAD( m_dll, MCSetMovie ); + wxDL_METHOD_LOAD( m_dll, MCSetActionFilterWithRefCon ); + wxDL_METHOD_LOAD( m_dll, MCGetControllerInfo ); + wxDL_METHOD_LOAD( m_dll, BeginUpdate ); + wxDL_METHOD_LOAD( m_dll, UpdateMovie ); + wxDL_METHOD_LOAD( m_dll, EndUpdate ); + wxDL_METHOD_LOAD( m_dll, GetMoviesStickyError ); + + return m_ok; } class WXDLLIMPEXP_MEDIA wxQTMediaBackend : public wxMediaBackendCommonBase