如何將FBReader引入MID

2021-06-16 04:14:22 字數 1495 閱讀 4807

1.從fbreader的官網(得到源**包

(這裡用到的是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_******函式在返回之前將其縮小到符合螢幕尺寸。

這樣還沒有完成,因為fbreader支援90度旋轉顯示,故還要考慮,

兩種情況能否都能放得下。

zlibrary/ui/src/maemo/view/zlgtkpaintcontext.cpp檔案中的updatepixmap函式

通過分析當前是橫向還是縱向顯示,設定乙個flag,

讓drawimage函式按不同情況縮放。

問題三: 查詢對話方塊失效-->原因未查,disable整個對話方塊

客戶未提出要求,故直接隱藏,方法是修改兩個xml檔案menubar.xml,*******.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/

如何將Flutter引入AndroidStudio

相信不少道友們了解了一些flutter相關的知識,兄弟愚鈍,今始方入坑中來,為方便後來之人亦己常顧之,特記錄在部落格當中 廢話不多講,學習flutter可以參考flutter中文網,裡面有詳細的介紹及搭建方法。我就把我如何引入到as中的過程記錄下來。小弟的環境是win10,下面介紹的也是此環境下的引...

如何將表單居中顯示 如何將重複資料突出顯示?

將 中一列資料中重複的,使用特殊顏色突出顯示或者使用一些符號標記出來。例如 乙個 商,可以邀請別的 商加入成為聯合體,報表要顯示所有 商,然後 商最後一列顯示所有聯合體,當聯合體 商跟別的 商重複時要突出顯示,並且加星號。用設計器自帶 demo 資料來源中的訂單明細資料表,使用嚮導建立一張分組報表,...

如何將ProtoBuffer生成Erlang檔案

1.安裝git工具,並將git下的bin目錄新增到path路徑中。2.安裝mingw,並新增到path路徑中。3.從中checkout原始碼。5.編譯我們的protobuffer檔案,假定我們將protobuffer檔案xx.proto複製到gpb bin目錄下,並在此目錄下建立乙個pb目錄,我們在...