如何将FBReader引入MID

1.从FBReader的官网(http://www.fbreader.org/)得到源代码包
    (这里用到的是fbreader-0.8.17)
   
    2.编译,执行make,报错,这是因为其用到了linebreak这个库,他是负责处理unicode编码文档的换行问题的。
      google到linebreak,make,将DebugDir里的*.a *.o全部复制到/usr/lib/下面,再将linebreak.h复制到/usr/include下面,即可编译通过。    
   
    3.由于现在是为MID做的,故将其显示到Xephyr的800x480的屏幕里,就会有很多问题
   
    问题一: 执行会直接退出显示内存错误-->原因为
        zlibrary/text/src/view/ZLTextPositionIndicator.cpp文件中的muldiv函数中
        执行了一个0/0的非法计算
        --用判断函数输入的方式解决。
      
    问题二: 若打开文档中图片尺寸超出屏幕范围,不显示-->原因为
        其设计理念是当前要在屏幕上画的对象的高减去上一个对象的终止位置,
        与屏幕高作比较,看能否放下,
        显然封面图片肯定是放不下的,怎么办?这里只能够在画之前进行缩小。

        zlibrary/ui/src/maemo/view/ZLGtkPaintContext.cpp文件中的drawImage函数
        是负责获得要打开文档中图片的大小。
        这里使用gdk_pixbuf_scale_simple函数在返回之前将其缩小到符合屏幕尺寸。

        这样还没有完成,因为FBReader支持90度旋转显示,故还要考虑,
        两种情况能否都能放得下。
        zlibrary/ui/src/maemo/view/ZLGtkPaintContext.cpp文件中的updatePixmap函数
        通过分析当前是横向还是纵向显示,设定一个flag,
        让drawImage函数按不同情况缩放。
               

    问题三: 查找对话框失效-->原因未查,disable整个对话框
        客户未提出要求,故直接隐藏,方法是修改两个XML文件menubar.xml,toolbar.xml           

    问题四: 设置对话框中的tab多,显示不下,且不能左右滚动显示-->就差一点  
        原先的版本是支持的
        zlibrary/ui/src/maemo/dialogs/ZLGtkOptionsDialog.cpp的ZLGtkOptionsDialog
        myNotebook = GTK_NOTEBOOK(gtk_notebook_new());后面加一句
        gtk_notebook_set_scrollable(myNotebook, true);即可

    问题五: 打开.epub文件并关闭FBReader后,在也无法启动FBReader-->还真有问题
        是其打开这种压缩文件的机制不正确,不同于打开zip。其保存的位置有问题,故将其不保存。

    问题六: 国际化未翻译完全-->找对文件就好了
        fbreader/data/resources/
        zliabray/core/data/resources/

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xpx3216/archive/2008/11/27/3389095.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值