Masaatoshi Ito の備忘録

主にザウルス(SL-C3100)に関する備忘録を書いています。更新停滞中&書く内容迷走中…。

SHARP純正Qtopia環境の左利き対応

2010年01月30日 18時16分30秒 | Zaurus
私は左利きなのですが、以前からZaurusのスクロールバーが左側にあったらなと思っていました。

また、下記サイトに左利き対応の話が記載されていて興味はあったのですが、なんだかんだで個人的には標準のQtopia環境が使いやすいのと、QtoiaやQt/Eをコンパイルし直して入れ替える作業がおっくうだったため、何もしないでいました。

Linuxザウルス開発メモ/Qtopia - Walrus, Visit.
http://digit.que.ne.jp/visit/index.cgi?Linux%a5%b6%a5%a6%a5%eb%a5%b9%b3%ab%c8%af%a5%e1%a5%e2%2fQtopia#i12

しかし、Zten改を改造させていただく中で、LinuxにはLD_PRELOADという環境変数を指定することでライブラリ内の関数をフックできることを知りました。
そして最近、このフックを使用すれば、一部分だけlibqte.soを乗っ取ってスクロールバーを左側に変えたクラスと入れ替えられないかと思うようになり、試してみました。
結果は、以下の通りです。

左スクロールバー - ztev改

(2010/03/12追記:よく見るとヘルプボタンがない…。通常起動では問題なさそう。)

左スクロールバー - zeditor


左スクロールバー - launcher


結果的に、Qt/Eの2.3.10のソースを基に、QScrollViewとQTableViewのクラスを書き換えました。
そして、その二つだけでライブラリを作成し、LD_PRELOADで指定してからアプリを起動すると上記のようにすることができました。
具体的には、libqtehook.soというライブラリを作成して、以下のようなコマンドを打ちました。
$ LD_PRELOAD=/usr/local/lib/libqtehook.so /home/QtPalmtop/bin/ztenv
最終的には、シェルスクリプトを噛ましましたが。
QScrollViewは2.3.10で既に対応されているためグローバル変数の初期値を変えるだけで済むかと思っていたのですが、そうではなく結局二つともそれなりにいじりました。
今思えば、Qt/E2.3.2のソースを、上記ソースを参考に改造した方が早かったかもしれません。
また、スタイル等を変更すると位置とかずれるかも。
あと、対応できないアプリもあります。
純正アプリは、ほとんどだめです。

ただ、ネットを検索すると先陣の方はおられたようですが、結果どうなったのかはわかりません。
とりあえず、詳しく書いていませんが(書く気力がないというか・・・)、こんな方法でできたということで参考になればということで。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« μpodとD01NXIIと相性 | トップ | cd の履歴を持たせる bashrc ... »
最新の画像もっと見る

コメントを投稿

Zaurus」カテゴリの最新記事