Author Archives: ivoryworks

新しくブログを開設しました

ここの放置具合も酷いものですが、別の場所に新しくブログを解説しました。
authorも別名で、いまのところ特にここからリンクも張らないので、しばらくひっそり運用するつもりです。

まっさらな所から色々いじるのは楽しい。

No tags for this post.

AndroidStudioやっとはじめました

AndroidStudioLogo

小学生

EclipseでAndroidアプリケーション開発が許されるのは小学生までだよねと言われて久しいですが、それでもEclipseを使い続けていた先月、次の記事が。

Google、「Android Developer Tools in Eclipse」サポートを年末に終了へ

米Googleは6月26日(現地時間)、Androidアプリ開発ツール「Android Developer Tools(ADT) in Eclipse」の開発と正式サポートを年内に終了すると発表した。

こうなってはもうEclipseでAndroid書いて許されるのは牛や豚のみとなってしまうため、これはすこし頑張ってみようかと既刊の書籍を物色してみるも、AndroidStudioを使ったAndroidアプリ開発入門ばかりでAndroidStudio入門がないんですね。Activityとは、とかFragmentとは!みたいなのは求めてないのです。AndroidStudioに入門したいのに。

本が欲しい

仕方がないのでWebをあたります。

Android Studio最速入門~効率的にコーディングするための使い方

やや古い連載ですが、イメージに近い事が書かれていました。
とりあえず、AndroidStudioの事はWebで情報収集することにして、放置してたリポジトリを建て直しました。

GitHub:ivoryworks/PGMA

試練場。
Eclipseのプロジェクトを削除して、AndroidStudioのプロジェクトをcommitします。

とりあえず毎日なにか書いてれば自然と身に付くんではないかなと。

AndroidでBitbucket『Bitbeaker』

Bitbucket

 今僕はgitのリポジトリをGitHub、Bitbucket、個人サーバの3箇所に置いていて主にBitbucketを使用しています。

 Bitbucketにはプライベートリポジトリしか置いてなくて割と節操ない感じなのですが、そのリポジトリに対して「Bitbeaker」というAndroidアプリを使ってます。これ何するかというと、もちろんcommitとかしないんだけど、出先でToDoやメモレベルのissuesを打ち込んだりするのに重宝しています。

 で今現在、Google Play上に同じ名前のアプリが2つ存在しています。

 これ、パクリアプリとかニセアプリとかそういうのではなくて、開発体制を別の人に移管したためこういう事になってるんですね。Google Playではパッケージの更新や配布に証明書を用いるのですが、おそらく譲渡できなかったためこのような関係になっているのだと思います。たぶん。
 現時点では、まだ両者の間に機能的な乖離はほとんどないのですが、使用するなら後者を選んでください。
 ちなみに、このアプリはBitbucket上にリポジトリを公開しています(前者のリポジトリは既に閉鎖)。

 あと、GitHub謹製のGitHubアプリもあって、これもインストールしてますが、これはどちらかというと参照にしか使ってなくて起動率も低い感じ。

オーム社
発売日 : 2009-08-12

読:『実例で学ぶゲームAIプログラミング』

著者 : Mat Buckland
オライリー・ジャパン
発売日 : 2007-09-28

 日本語版2007年の本ですが、レビュー高評価だったので福袋欲しさに買いました。
 第1章より、数学と物理学の復習的な内容から始まっていて、すこしずつ読み進めています。
 サンプルはC/C++言語で書かれていて、ダウンロードできるソースコードはVC、同じものがVS環境向けにも用意されてます。
 VS環境を用意する気がないので、別の言語に書き移しながら勉強していくつもり。

 今月は福袋がつきます。去年は何を買ってたかなと思ったら同じくゲーム関連書籍でした。
 正月明けても即ポチせずに一呼吸置くのがプロの業。

DSC_1633

やわらかい機械

「曲がるiPhone」を実現する技術の特許をAppleが取得 – GIGAZINE

現地時間の2015年1月6日にAppleが「Flexible electronic devices(自由に曲げられる電子機器)」の特許を取得しました。ディスプレイやケースだけでなく、内部パーツまで曲げられるという、かなり画期的な内容になっています。

 先日、appleの曲がるiPhoneの特許について報じられたとき、やわらか携帯の事を思い出した。

薄くなっていく携帯。さすがにどこかで歯止めがかかるはずだが、薄くなればなるほど強度が心配になってくる。今度は「やわらかい携帯電話」が出てきたりしてね。いや、やわらかいと言うより「しなる携帯電話」かな。

 この少しあとに、やわらか電池を書いている。

 当時(2009年)は、バッグの中で不意に圧がかかっても壊れないような、しなる携帯電話が出てくるかもしれないなあと考えていたのだけど、結局現在までにそういった端末が市場に並ぶことはなく、「携帯電話」は減少の一途をたどっている。

 このエントリで「携帯」と言っているところが時代を感じるけれど、その半年後にdocomoの初Androidを紹介していて『2009/07/10『docomo PRO series HT-03A』発売』、翌年にはIS03を買っているから、ちょうど転換期だったのかもしれない。『ZaurusとIS03

 曲がるiPhoneが登場するかどうかわからないけど、5年もしたらスマートフォン持ってないかもしれないなあ、とぼんやり考えています。

読:『Cocos2d-html5ではじめるモバイルゲーム開発』

買ってみました。

超有名なゲームエンジンCocos2dの派生版であるCocos2d-html5です(まだよくわかってない)。同じく有名なゲームエンジンであるUnityにも興味あるんだけど、開発環境がLinuxサポートしてないので、こちらに。

本命はC++で書くCocos2d-xだけど、市場の書籍がバージョン2系ばかりなので(現在の最新版は3らしい。よく知らない)、3系の書籍が出揃うのを待つとして、とりあえずはHTML5でCocos2dに触れてみようかなと。

ちょっと試してみます。

KomodoMarkdownAidを公開したら色々あった

Screenshot

はじめに

このエントリのタイトルは、『 Komodo Markdown Aidを公開したらKomodo Editの中の人が見つけてくれてissueやpull requestもらったりして感激したけど最終的にGitHubのリポジトリを壊した』という風にしたかったが長いので省略した。

Komodo Markdown Aid

先日、Markdown文書を書きながら閲覧するためのKomodo IDE/Edit マクロをリリースした。Komodo Markdown Aidという。

[Komodo Edit] Komodo Markdown Aidをリリースしました

このマクロは、GitHubで公開していて誰でも使える。

GitHub : ivoryworks/komodo-markdown-aid

Readme.mdを英語で書いた

Komodo Editには個人的にいくつかの不満点があり、その中に『Markdown文章を手軽にプレビューする手段がない事』があった。

かなりの時間をかけて『KomodoEditでMarkdown文章をプレビューする何か』を探しまくったのだけど、これが全世界的に存在しない。

マクロを書いた。

おそらくは世界にこれしかないので、GitHubで公開するにあたってReadme.mdは英語で書いた。
英語で書いた、と書くとあれだけど、はっきり言って英語力が皆無なので、Google翻訳を駆使しながらも、最低限の情報を載せた。

今までGitHubには『公開しても差し支えの無いもの』を置いていて、見られたくないコードは、自前のVPSにリポジトリを作っていた。
『公開しても差し支えの無いもの』と『公開するもの』の間には大きな隔たりがある。だから、今までReadmeなんて日本語ですらまともに書いたことがなかった。

はじめてissueが来た

リリース後しばらくしてissueが届いた。
今までGitHubを単なるコードの保管場所に使っていたので、issueなんてもらったことない。

Hi there, awesome macro! I had been thinking of creating one just like it, glad I don’t have to :) I look forward to using yours.

I think many users will appreciate your work on this, so why not submit it to the Komodo Resources section? :) https://github.com/Komodo/Komodo-Resources

端的には、Komodo IDE/Editのマクロやアドオン、スキンなんかを取り纏めているKomodo ResourcesというサイトにKomodo Markdown Aidを登録したい、と書いてある。

調べたら、Komodo Editの中の人からのissueだった。

Google翻訳の全面的な協力のもと返信した。

はじめてpull requestが来た

翌日、Komodo Resourcesに”Markdown Preview”という名前で、Komodo Markdown Aidが登録され、issueはcloseとなった。

Markdown Preview

同時に、Komodo Markdown Aidへpull requestが来た。
最初のissueには「僕もこういったものを作ろうとしてたんだ」と書いてあって、社交辞令だろうと思ってたけど、コード読んでくれてて良かった。
落ち着いてから投入しようと思い、保留にした。

リポジトリを破壊した

これまでのコミットに気にくわない個所があって、Komodoの中の人からpull requestもらって調子に乗っていた僕は、最悪なことに歴史の改ざんに踏み切った。

何をしたとか省くけど、リポジトリがきれいになったと思ったらpull request投入できなくなっていた。関連が切れた状態になっていたのだと思う。

しかたなく泣きながら手動マージしてcommitした。

Google翻訳の全面的な協力のもと謝罪した。

まとめ

  • Readme.mdを英語で書いてよかった。
  • まごころがあれば適当な英語でも大体伝わる。
  • 歴史の改ざんはやめろ。後学のために歴史改ざんした方がいい。そして1回くらい死んだ方がいい。

[Komodo Edit] Komodo Markdown Aidをリリースしました

Komodo Markdown Aid

Screenshot

Komodo IDE/EditでMarkdownを書きながらプレビューするための支援ツールを作りました。
ファイルの保存をトリガに実行されるpythonマクロです。

GitHub: https://github.com/ivoryworks/komodo-markdown-aid

インストール

zipをダウンロードするか、git cloneしてプロジェクトを保存します。
次に、Komodo IDE/EditのToolboxメニューからインポートします。

つかいかた

拡張子が.mdのファイルに対して有効です。
保存をトリガにプレビューが開きます。

これで使えるのですが、Markdownの変換処理を高速化するために、後述するStrapdown.jsのダウンロードを行ってください。
Strapdown.jsは同梱する事にしました。これにより、ダウンロードしてそのまま使えます。

Markdownのコンバート(Strapdown.js)

Markdownのコンバートには、Strapdown.jsを用いています。
これはJavaScriptによる実装で、プレビュー画面表示時にMarkdownからHTMLへと変換しています。

初期設定では、Strapdown.jsがホストしているURLが設定されており、そのままですと、コンバート時にネットワーク接続が必要であったり、また変換処理がもたつくため、Strapdown.jsをPCにダウンロードして用いることを強くお勧めします
ダウンロードの際には、Strapdown.jsだけでなく、他の関連ファイルも合わせてダウンロードするようにしてください。

テーマについて

README.mdにはまだ書いていないのですが、Strapdown.jsは任意のBootstrapテーマを適用することが可能です。
カスタマイズ方法については後日解説します。

[Komodo Edit] SciMozのメソッド一覧

ActiveState SciMoz

 前回は、SciMozの属性値を実際に使用し一覧化した。
 このエントリでは、Komodo Edit 8.5のマニュアルに記載されているSicMozのメソッドを実際に使用し、その動作についてコメントを付けて一覧化する。
 属性値とこのメソッドを利用することで、ユーザがテキストに対して行える操作の全てをマクロから実施することができる。

scimozのメソッド

 ここにscimozのメソッド一覧を記述する。しかしたら捉え違いをしているものもあるかもしれない。
 一部のメソッドについては、動作を理解できなかったものがあり、コメント部はマニュアルのままとしている。判明次第修正する。次の5メソッド。

  • replaceTarget()
  • homeDisplay()
  • homeDisplayExtend()
  • lineEndDisplay()
  • lineEndDisplayExtend()

 また、注意点を最初に記載しておく。

  • メソッドの多くは「ポジション」という値をを扱う。この値はファイル先頭(1行目の行頭)を0とした絶対位置を表す。
    メソッドの解説で用いている「位置」は、特に注釈ない限りこの「ポジション」を意味する。
  • 行番号を扱うメソッドが存在するが、そこで言う行番号とは0から開始する値で、エディタの行番号表示機能により表示される値とは異なる事に注意すること。

メソッド一覧

  • void emptyUndoBuffer()
    アンドゥの履歴をクリアする。
  • void undo()
    アンドゥを実行する。
  • void cut()
    選択領域内の文字列を切り取る。
  • void copy()
    選択領域内の文字列をコピーする。
  • void paste()
    カーソル位置にクリップボードの内容を挿入する。
  • void clear()
    選択領域内の文字列を消去する。
  • long replaceTarget(in long length, in string text)
    Replace the target text with the argument text. Text is counted so it can contain NULs. Returns the length of the replacement text..
  • string getTextRange(in long min, in long max)
    テキスト中から指定した範囲の文字列を返却する。パラメータは開始と終了位置。
    、”end”の関係)
  • void insertText(in long pos, in string text)
    指定した位置へ文字列を挿入する。カーソル位置とは無関係。
  • void colourise(in long start, in long end)
    指定した範囲内の文字列に対しハイライトを再設定する。
  • wchar getWCharAt(in long pos)
    指定した位置の文字を返却する。Unicode対応。
  • void addText(in long length, in string text)
    指定の文字列をカーソル位置に指定の長さで挿入する。与えた文字列長以上のサイズ、または長さ未指定の場合は全文が挿入される。長さに0を指定した場合は挿入なし。
  • void selectAll()
    テキストを全選択する。
  • void gotoLine(in long line)
    指定した行の行頭へカーソルを移動する。行番号は0から開始する(1行目は0)。
  • void gotoPos(in long pos)
    指定した位置へカーソルを移動する。位置の指定はテキスト先頭からのバイトサイズ。
  • void deleteBack()
    カーソルの左一文字を削除する。カーソルが行頭にある場合は、前の行の改行が削除される。
  • void newLine()
    カーソル位置で改行する。
  • void redo()
    リドゥを実行する。
  • boolean canRedo()
    リドゥが可能であるかを返却する。
  • void beginUndoAction()
    Undo操作(Undoスタックに積む単位)の開始を設定する。例外発生時でも必ずendUndoAction()が実行されるようコーディングする事。(後述の『Undoスタックについて』を参照)
  • void endUndoAction()
    Undo操作(Undoスタックに積む単位)の終了を設定する。(後述の『Undoスタックについて』を参照)
  • long getColumn(in long pos)
    指定した位置に対応する行の、行頭を0とした行中の位置を返却する。
  • long getLineEndPosition(in long line)
    指定した行の行末の位置を返却する。
  • void setSel(in long start, in long end)
    指定した開始位置から終了位置までを選択する。
  • long lineFromPosition(in long pos)
    指定した位置の行番号を返却する。行番号は0から開始する(1行目が0)。
  • long positionFromLine(in long line)
    指定した行の行頭位置を返却する。
  • void lineScroll(in long columns, in long lines)
    指定した列(水平方向)、指定した行(垂直方向)へウィンドウの内容をスクロールする。カーソルは移動しない。
    垂直方向の場合には、正の値を指定するとファイル末尾へ、負の値ではファイル先頭へとスクロールする。
    水平方向の場合には、正の値で右へとスクロールし、負の値で左へとスクロールする。但し、水平方向のスクロールはWord Wrapが有効である場合には無効である(自動折り返しのため)。
  • void scrollCaret()
    カーソルがウィンドウ外に外れている場合、ウィンドウ内に表示するようスクロールする。カーソルがウィンドウ内に表示されていても、ウィンドウの際(きわ)に位置する場合は、若干のスクロールが発生する事がある。
  • long lineLength(in long line)
    指定した行の長さを得る。改行文字も数えられる。EOF(End Of File)のみ、または存在しない行番号を指定した場合には0が返却される。
  • void replaceSel(string)
    選択領域を指定の文字列で置換する。選択していない場合は、カーソル位置に指定の文字列を挿入する。
  • void lineDown()
    カーソルを次の行へ移動する。
  • void lineDownExtend()
    カーソルを次の行へ移動させ、移動先までを選択する。
  • void lineUp()
    カーソルを前の行へ移動する。
  • void lineUpExtend()
    カーソルを前の行へ移動させ、移動先までを選択する。
  • void charLeft()
    カーソルを1文字分左へ移動する。
  • void charLeftExtend()
    カーソルを1文字分左へ移動させ、移動先までを選択する。
  • void charRight()
    カーソルを1文字分右へ移動する。
  • void charRightExtend()
    カーソルを1文字分右へ移動させ、移動先までを選択する。
  • void wordLeft()
    カーソルより左に存在する単語の先頭にカーソルを移動する。行頭に達している場合、前の行へ移動する。
  • void wordLeftExtend()
    カーソルの動きはwordLeft()と同じ。移動先までを選択する。
  • void wordRight()
    カーソルより左に存在する単語の先頭にカーソルを移動する。行頭に達している場合、前の行へ移動する。行末に達している場合、次の行へ移動する。
  • void wordRightExtend()
    カーソルの動きはwordRight()と同じ。移動先までを選択する。
  • void home()
    カーソルを行頭へ移動する。
  • void homeExtend()
    カーソル位置から行頭までを選択する。
  • void lineEnd()
    カーソルを行末へ移動する。
  • void lineEndExtend()
    カーソル位置から行末までを選択する。
  • void documentStart()
    カーソルをファイル先頭(1行目の行頭)へ移動する。
  • void documentStartExtend()
    カーソル位置からファイル先頭(1行目の行頭)までを選択する。
  • void documentEnd()
    カーソルをファイル終端(最終行の行末)へ移動する。
  • void documentEndExtend()
    カーソル位置からファイル終端(最終行の行末)までを選択する。
  • void pageUp()
    ウィンドウの内容を、約1画面分文章の先頭方向へ遷移させる。カーソル位置も遷移に合わせて移動する。
  • void pageUpExtend()
    カーソルの動きはpageUp()と同じ。合わせて、現在のカーソル位置から遷移に合わせて移動した先のカーソル位置までを選択する。
  • void pageDown()
    ウィンドウの内容を、約1画面分文章の終端方向へ遷移させる。カーソル位置も遷移に合わせて移動する。
  • void pageDownExtend()
    カーソルの動きはpageDown()と同じ。合わせて、現在のカーソル位置から遷移に合わせて移動した先のカーソル位置までを選択する。
  • void editToggleOvertype()
    「挿入」と「上書」モードの切り替え。トグル動作する。
  • void vCHome()
    カーソルを行のインデント位置まで移動する。インデントしていない場合は行頭へ移動する。
  • void vCHomeExtend()
    カーソルの動きはvCHome()と同じ。合わせて、現在のカーソル位置から移動した先のカーソル位置までを選択する。
  • void zoomIn()
    フォントを拡大する。
  • void zoomOut()
    フォントを縮小する。
  • void delWordLeft()
    カーソル左の単語を削除する。カーソルが単語上に存在する場合は、カーソル位置から単語先頭までを削除する。
  • void delWordRight()
    カーソル右の単語を削除する。カーソルが単語上に存在する場合は、カーソル位置から単語末尾までを削除する。
  • void lineCopy()
    カーソル行をコピーする(改行含む)。
  • void lineCut()
    カーソル行を切り取る(改行含む)。
  • void lineDelete()
    カーソル行を削除する(改行含む)。
  • void lineTranspose()
    カーソル行を1つ前の行と入れ替える。
  • void lineDuplicate()
    カーソル行を複製し、次の行との間に貼り付ける。
  • void lowerCase()
    選択した文字を小文字へ変換する。アルファベットが対象。マルチバイト文字のアルファベットにも機能する。
  • void upperCase()
    選択した文字を大文字へ変換する。アルファベットが対象。マルチバイト文字のアルファベットにも機能する。
  • void lineScrollDown()
    ウィンドウの内容を1行分下へスクロールする。
  • void lineScrollUp()
    ウィンドウの内容を1行分上へスクロールする。
  • void deleteBackNotLine()
    カーソル左の文字を削除する。deleteBack()と異なる点として、カーソルが行頭にある場合は何も動作しない。
  • void homeDisplay()
    Move cursor to Home position for the current display line (as opposed to the buffer line when word wrap is enabled).
  • void homeDisplayExtend()
    Extend selection to the Home position for the current display line (as opposed to the buffer line when word wrap is enabled).
  • void lineEndDisplay()
    Move cursor to end of the current display line (as opposed to the buffer line when word wrap is enabled).
  • void lineEndDisplayExtend()
    Extend selection to the end of the current display line (as opposed to the buffer line when word wrap is enabled).
  • void wordPartLeft()
    単語単位でカーソルを左方向へ移動させる。wordLeft()との違いは、カーソルが単語の先頭に存在する場合、左の単語の末尾へ移動する事。
  • void wordPartLeftExtend()
    カーソルの動きはwordPartLeft()と同じ。合わせて、現在のカーソル位置から移動した先のカーソル位置までを選択する。
  • void wordPartRight()
    単語単位でカーソルを右方向へ移動させる。wordRight()との違いは、カーソルが単語の先頭に存在する場合、その単語の末尾へ移動する事。
  • void wordPartRightExtend()
    カーソルの動きはwordPartRight()と同じ。合わせて、現在のカーソル位置から移動した先のカーソル位置までを選択する。
  • void delLineLeft()
    カーソル位置から行頭までを削除する。
  • void delLineRight()
    カーソル位置から行末までを削除する(改行は含まない)。
  • void paraDown()
    次のパラグラフ(文章)先頭へカーソルを移動する。
  • void paraDownExtend()
    カーソル位置から次のパラグラフ(文章)先頭までを選択する。
  • void paraUp()
    前のパラグラフ(文章)先頭へカーソルを移動する。
  • void paraUpExtend()
    カーソル位置から前のパラグラフ(文章)先頭までを選択する。

Undoスタックについて

 Undoスタックについて以下に概略を記述する。詳しくはマニュアル記載の”The Undo Stack”を参照の事。

 ScintillaはUndo履歴をスタック管理している(scimozはScintillaのプラグイン)。
マクロからテキストに対して操作を行うにあたり、その操作単位を意図的に区切りる場合はbeginUndoAction()/endUndoAction()を用いる必要がある。
 またその場合、例外発生時にも必ずendUndoAction()が実行されるよう注意する事。正しく用いられない場合には、その情報が失われる可能性がある。

※ beginUndoAction()/endUndoAction()を用いずとも、各操作はスタックに積まれるが、その単位は1操作毎となる。

[Komodo Edit] エディタの属性値一覧(scimoz Attributes)

ActiveState SciMoz

 scimozはKomodo Editにバンドルされているエディタプラグイン(おそらくScintillaのプラグイン。MozはMozilla?)。
 Komodo Editでは、マクロからscimozを利用することで、エディタに対して様々な命令を実行する事ができる。

scimozの取得

 scimozはPython/JavaScriptどちらでマクロを書いても利用できる。以下はPythonでscimozオブジェクトを取得する例。

from xpcom import components

viewSvc = components.classes["@activestate.com/koViewService;1"]\
    .getService(components.interfaces.koIViewService)
view = viewSvc.currentView.queryInterface(components.interfaces.koIScintillaView)
sm = view.scimoz

 最後のsmがscimozオブジェクトとなる。sm.textとすればエディタ上の全文が得られる。

scimozの属性値

 属性値の多くは上書く事が可能であり即時反映される。
 ファイル固有のプロパティに関わるもの(ホワイトスペースの可視設定など)については、属性値を上書くと、その場でプロパティが再設定・保存される。
 以下は、Version 8.5のマニュアルを元に、実際に動作を確認した結果を記載している。もしかしたら捉え違いをしているものもあるかもしれない。それと、targetStartとtargetEndについては、動作について理解できなかった点があり、マニュアルの文章をそのまま載せている。動作が判明したら修正する予定。文字列置換に関連するようだが。

  • int currentPos
    テキスト上の絶対的カーソル位置。バイト数でカウントされるため、マルチバイト文字が含まれる場合には文字数との関係が1:1とならない。
  • int anchor
    選択開始位置。選択状態でない場合はcurrentPosと同じ値。ちなみに、currentPosもanchorも0(カーソルがテキストの先頭)の状態にて、currentPosへ1を格納すると、テキスト先頭1文字が選択状態となる。
  • string text
    テキスト全文。上書けばテキスト全体が差し替わる。
  • string selText
    選択した文字列(読み取りのみ)
  • long scrollWidth
    水平スクロール最大幅(ピクセル単位)。エディタ描画領域がこの幅よりも狭い場合に、水平スクロールバーが表示される。
  • long xOffset
    水平スクロール位置(ピクセル単位)。Word Wrapが有効の場合は常に0となる。
  • boolean viewEOL
    EOL(End Of Line)の表示設定(False:不可視 True:可視)。
  • long viewWS
    ホワイトスペースの表示設定(0:不可視 1:可視)。
  • long eOLMode
    改行文字列の設定(0:CRLF 1:CR 2:LF)。
  • long tabWidth
    tab幅
  • long indent
    インデント幅
  • boolean useTabs
    tabの使用有無。直接的には、tabキーを押下した際に入力される文字タイプ(True:tab文字 False:ホワイトスペース)。
  • boolean indentationGuides
    インデントブロック範囲を表す垂直線の描画有無(0:描画なし 1:描画あり)。
  • long firstVisibleLine
    画面先頭行に描画される行番号。1行目は0となるので注意。折り返しは1行として数えられる。
  • long lineCount
    テキストの全行数(読み取りのみ)。
  • long textLength
    テキストの全サイズ(読み取りのみ)。バイト換算のため、マルチバイト文字列が含まれる場合は文字数と一致しない。
  • long targetStart
    The start of the target region; see replaceTarget.
  • long targetEnd
    The end of the target region; see replaceTarget.
  • long linesOnScreen
    画面の最大描画ライン数。つまり見たままのライン数。よって自動折り返しにより2行となる場合は2行としてカウントされる。

sicmozのメソッド

 scimozには上記属性の他に、各種多様なメソッドが実装されている。
 それらについては別のエントリとするつもり。

著者 : Tarek Ziade
アスキー・メディアワークス
発売日 : 2010-05-28