#include "litehtml_glue.h" //**** *bb_litehtml_document_container ***** litehtml::uint_ptr bb_litehtml_document_container::create_font( const litehtml::tchar_t *faceName,int size,int weight,litehtml::font_style style,unsigned int decoration,litehtml::font_metrics *fm ){ bbObject *font=_create_font( faceName,size,weight,style,decoration,fm ); return font; } void bb_litehtml_document_container::delete_font( litehtml::uint_ptr hFont ){ bbObject *font=(bbObject*)hFont; _delete_font( font ); } int bb_litehtml_document_container::text_width( const litehtml::tchar_t *text,litehtml::uint_ptr hFont ){ bbObject *font=(bbObject*)hFont; return _text_width( text,font ); } void bb_litehtml_document_container::draw_text( litehtml::uint_ptr hHdc,const litehtml::tchar_t *text,litehtml::uint_ptr hFont,litehtml::web_color color,const litehtml::position &pos ){ bbObject *hdc=(bbObject*)hHdc; bbObject *font=(bbObject*)hFont; _draw_text( hdc,text,font,&color,(litehtml::position*)&pos ); } int bb_litehtml_document_container::pt_to_px( int pt ){ return _pt_to_px( pt ); } int bb_litehtml_document_container::get_default_font_size()const{ return ((bb_litehtml_document_container*)this)->_get_default_font_size(); } const litehtml::tchar_t *bb_litehtml_document_container::get_default_font_name()const{ bbString name=((bb_litehtml_document_container*)this)->_get_default_font_name(); return name.c_str();//(); } void bb_litehtml_document_container::draw_list_marker( litehtml::uint_ptr hHdc,const litehtml::list_marker &marker ){ bbObject *hdc=(bbObject*)hHdc; _draw_list_marker( hdc,(litehtml::list_marker*)&marker ); } void bb_litehtml_document_container::load_image( const litehtml::tchar_t *src,const litehtml::tchar_t *baseurl,bool redraw_on_ready ){ _load_image( src,"",redraw_on_ready );//baseurl,redraw_on_ready ); } void bb_litehtml_document_container::get_image_size( const litehtml::tchar_t *src,const litehtml::tchar_t *baseurl,litehtml::size &sz ){ _get_image_size( src,"",&sz );//baseurl,&sz ); } void bb_litehtml_document_container::draw_background( litehtml::uint_ptr hHdc,const litehtml::background_paint &bg ){ bbObject *hdc=(bbObject*)hHdc; _draw_background( hdc,bg.image.c_str(),"",(litehtml::background_paint*)&bg ); } void bb_litehtml_document_container::draw_borders( litehtml::uint_ptr hHdc,const litehtml::borders &borders,const litehtml::position &draw_pos,bool root ){ bbObject *hdc=(bbObject*)hHdc; _draw_borders( hdc,(litehtml::borders*)&borders,(litehtml::position*)&draw_pos,root ); } void bb_litehtml_document_container::set_caption( const litehtml::tchar_t *caption ){ _set_caption( caption ); } void bb_litehtml_document_container::set_base_url( const litehtml::tchar_t *base_url ){ _set_base_url( base_url ); } void bb_litehtml_document_container::link( const std::shared_ptr &doc,const litehtml::element::ptr &el ){ } void bb_litehtml_document_container::on_anchor_click( const litehtml::tchar_t *url,const litehtml::element::ptr &el ){ _on_anchor_click( url ); } void bb_litehtml_document_container::set_cursor( const litehtml::tchar_t *cursor ){ _set_cursor( cursor ); } void bb_litehtml_document_container::transform_text( litehtml::tstring &text,litehtml::text_transform tt ){ // _transform_text( text,tt ); } void bb_litehtml_document_container::import_css( litehtml::tstring &text,const litehtml::tstring &url,litehtml::tstring &baseurl ){ bbString css=_import_css( url.c_str(),"" ); text=css.c_str(); // text=static_cast( css ); baseurl=""; } void bb_litehtml_document_container::set_clip( const litehtml::position &pos,const litehtml::border_radiuses &bdr_radius,bool valid_x,bool valid_y ){ _set_clip( (litehtml::position*)&pos,(litehtml::border_radiuses*)&bdr_radius ); } void bb_litehtml_document_container::del_clip(){ _del_clip(); } void bb_litehtml_document_container::get_client_rect( litehtml::position &client )const{ ((bb_litehtml_document_container*)this)->_get_client_rect( &client ); } std::shared_ptr bb_litehtml_document_container::create_element( const litehtml::tchar_t *tag_name, const litehtml::string_map &attributes, const std::shared_ptr &doc ){ return nullptr; } void bb_litehtml_document_container::get_media_features( litehtml::media_features &media )const{ ((bb_litehtml_document_container*)this)->_get_media_features( &media ); } void bb_litehtml_document_container::get_language( litehtml::tstring &language,litehtml::tstring &culture )const{ ((bb_litehtml_document_container*)this)->_get_language(); ((bb_litehtml_document_container*)this)->_get_culture(); } //**** *bb_litehtml_context **** bb_litehtml_context::bb_litehtml_context(){ } void bb_litehtml_context::load_master_stylesheet( bbString master_css ){ litehtml::context::load_master_stylesheet( bbCString( master_css ) ); } //**** *bb_litehtml_document ***** bb_litehtml_document::bb_litehtml_document( bbString source,bb_litehtml_document_container *container,bb_litehtml_context *context ){ _document=litehtml::document::createFromUTF8( bbCString( source ),container,context ); _container=container; _context=context; } bb_litehtml_document::~bb_litehtml_document(){ } void bb_litehtml_document::render( int max_width ){ _document->render( max_width ); } void bb_litehtml_document::draw( bbObject *hdc,int x,int y,litehtml::position *clip ){ _drawing=hdc; _document->draw( (litehtml::uint_ptr)hdc,x,y,clip ); _drawing=nullptr; } int bb_litehtml_document::width(){ return _document->width(); } int bb_litehtml_document::height(){ return _document->height(); } void bb_litehtml_document::gcMark(){ bbGCMark( _container ); bbGCMark( _context ); bbGCMark( _drawing ); } void bb_litehtml_document::media_changed(){ _document->media_changed(); } void bb_litehtml_document::on_mouse_over( int x,int y,int client_x,int client_y ){ litehtml::position::vector redraw_boxes; _document->on_mouse_over( x,y,client_x,client_y,redraw_boxes ); } void bb_litehtml_document::on_lbutton_down( int x,int y,int client_x,int client_y ){ litehtml::position::vector redraw_boxes; _document->on_lbutton_down( x,y,client_x,client_y,redraw_boxes ); } void bb_litehtml_document::on_lbutton_up( int x,int y,int client_x,int client_y ){ litehtml::position::vector redraw_boxes; _document->on_lbutton_up( x,y,client_x,client_y,redraw_boxes ); } void bb_litehtml_document::on_mouse_leave(){ litehtml::position::vector redraw_boxes; _document->on_mouse_leave( redraw_boxes ); }