Implement all interfaces of view object. If view object provider does not want to support optional interface, it may remove the interface from parent class list. More...
#include <view_impl.h>
Public Member Functions | |
PluginViewImpl (PluginDocImpl *doc) | |
~PluginViewImpl (void) | |
Data Fields | |
utils::Signal< PluginViewImpl * > | release_signal |
Implement all interfaces of view object. If view object provider does not want to support optional interface, it may remove the interface from parent class list.
Definition at line 48 of file pdf/plugin_impl/view_impl.h.
pdf::PluginViewImpl::PluginViewImpl | ( | PluginDocImpl * | doc | ) | [explicit] |
Definition at line 38 of file pdf/plugin_impl/view_impl.cpp.
References IPluginEventBroadcaster::add_event_receiver, utils::ObjectTable< T >::add_interface(), pdf::Signal< R, A1, A2, A3, A4, A5 >::add_slot(), IPluginRender::create_render_settings, IPluginView::get_anchor_by_page, IPluginView::get_cover_page, IPluginFont::get_font_family, IPluginFont::get_font_size, IPluginView::get_next_page, IPluginView::get_number_of_pages, IPluginRender::get_original_rotation, IPluginRender::get_original_size, IPluginRender::get_page_content_area, IPluginView::get_page_name, IPluginView::get_page_number, IPluginView::get_physical_page_start, IPluginView::get_prev_page, IPluginView::get_rendered_page_start, _IPluginUnknown::query_interface, _IPluginUnknown::release, IPluginEventBroadcaster::remove_event_receiver, IPluginRender::render, IPluginViewSettings::set_color_depth, IPluginViewSettings::set_display_size, IPluginViewSettings::set_DPI, IPluginFont::set_font_family, IPluginFont::set_font_size, IPluginRender::set_memory_limit, and pdf::PDFController::sig_page_ready.
00039 : document(doc) 00040 , render_settings() 00041 , render_results() 00042 , listeners() 00043 , renderer(doc->get_renderer()) 00044 { 00045 assert(document); 00046 00047 // IPluginUnknown 00048 query_interface = query_interface_impl; 00049 release = release_impl; 00050 00051 // IPluginView 00052 get_page_number = get_page_number_impl; 00053 get_page_name = get_page_name_impl; 00054 get_rendered_page_start = get_rendered_page_start_impl; 00055 get_physical_page_start = get_physical_page_start_impl; 00056 get_number_of_pages = get_number_of_pages_impl; 00057 get_anchor_by_page = get_anchor_by_page_impl; 00058 get_prev_page = get_prev_page_impl; 00059 get_next_page = get_next_page_impl; 00060 get_cover_page = get_cover_page_impl; 00061 00062 // IPluginViewSettings 00063 set_display_size = set_display_size_impl; 00064 set_DPI = set_DPI_impl; 00065 set_color_depth = set_color_depth_impl; 00066 00067 // IPluginRender 00068 render = render_impl; 00069 create_render_settings = create_render_settings_impl; 00070 set_memory_limit = set_memory_limit_impl; 00071 get_original_size = get_original_size_impl; 00072 get_page_content_area = get_page_content_area_impl; 00073 get_original_rotation = get_original_rotation_impl; 00074 00075 // IPluginFont 00076 get_font_size = get_font_size_impl; 00077 set_font_size = set_font_size_impl; 00078 get_font_family = get_font_family_impl; 00079 set_font_family = set_font_family_impl; 00080 00081 // IPluginEventBroadcaster 00082 add_event_receiver = add_event_receiver_impl; 00083 remove_event_receiver = remove_event_receiver_impl; 00084 00085 g_instances_table.add_interface<IPluginUnknown>(this); 00086 g_instances_table.add_interface<IPluginView>(this); 00087 g_instances_table.add_interface<IPluginViewSettings>(this); 00088 g_instances_table.add_interface<IPluginRender>(this); 00089 g_instances_table.add_interface<IPluginEventBroadcaster>(this); 00090 00091 // add the slots of handling render results onto the document 00092 document->doc_ctrl.sig_page_ready.add_slot(this 00093 , &PluginViewImpl::handle_page_ready); 00094 00095 }
pdf::PluginViewImpl::~PluginViewImpl | ( | void | ) |
Definition at line 97 of file pdf/plugin_impl/view_impl.cpp.
References utils::ObjectTable< T >::remove(), pdf::Signal< R, A1, A2, A3, A4, A5 >::remove_slot(), and pdf::PDFController::sig_page_ready.
00098 { 00099 document->doc_ctrl.sig_page_ready.remove_slot(this 00100 , &PluginViewImpl::handle_page_ready); 00101 00102 g_instances_table.remove(this); 00103 }
Definition at line 61 of file pdf/plugin_impl/view_impl.h.