2011年6月4日土曜日

OpenOffice > Python, C++ > 複雑なツールバーの作成

テキストボックスやコンボボックスを持つツールバーを作成するチュートリアルをやってみた。

DeveloperGuide
http://wiki.services.openoffice.org/wiki/Framework/Article/Generic_UNO_Interfaces_for_complex_toolbar_controls
SDKのexampleの中に対応するサンプルソースがある(example\cpp\complextoolbarcontrols)。C++で実装してある。

http://hermione.s41.xrea.com/pukiwiki/index.php?Extensions%2FComplexToolbar
Pythonで実装してある。

C++, Pythonともによく知らないので、サンプルコードを流用してイベントを拾ったら、OpenOffice BasicのマクロにDispatchしてしまえば、簡単に面白いツールが作れると思う(DeveloperGuideのサンプルならBaseDispatch#dispatch内で)。

2011年6月3日金曜日

OpenOffice > Basic > 選択された文字列を取得

'文字列を取得する
'Calcの場合は選択されているセルの文字列
'Writerの場合は選択されている文字列
'Calcのセル内で選択されている文字のみを抽出する機能はない
Function GetSelectedText

controller = ThisComponent.CurrentController
selection = controller.getSelection()
iName = selection.ImplementationName
If iName="SwXTextRanges" Then
GetSelectedText = selection.getbyindex(0).String
ElseIf iName="ScCellObj" Then
GetSelectedText = selection.String
Else
GetSelectedText = ""
End If

End Function

vim ctags

  • タグファイルの設定
    :set tags=tagfile1,tagfile2...
  • タグジャンプする
    Ctr + ]
  • 元の位置に戻る
    Ctr + t
  • タグファイルの作成(vimのコマンドではない)
    ctags -R -f outputfile_name search_directory_path
    例 ctags -R -f c:\tags c:\project1\src
    -R 再帰

vim ヘルプ

  • helpの表示
    :help
  • コマンドを調べる
    :help command_name
  • コマンドの一覧を見る
    :help part_of_command_name<C-d>

OracleがOpenOfficeのコードをApach財団に寄贈

http://itpro.nikkeibp.co.jp/article/NEWS/20110602/360967/

2011年6月2日木曜日

OpenOffice > Python > Eclipseでデバッグ

OpenOfficeのPythonマクロをEclipseでデバッグする方法

EclipseにPydevプラグインをインストールし、Pydevプラグインの機能であるデバッグサーバーを使用することでリモートデバッグできる。あくまでもサーバーであるため、シグナルを送るのはクライアントであるPythonマクロということになる。つまりPythonマクロにサーバーにリクエストを送るためのコードを埋めこまなくてはならない。(Eclipse上でブレイクポイントも貼っても意味が無い。)

参考
http://pydev.org/manual_adv_remote_debugger.html

vim 基本

  • ディレクトリの移動
    :cd directory
  • ファイルを開く
    :e filename

  • バッファを切り替える
    :b filename
  • 次のバッファ
    :bn
  • 前のバッファ
    :bp

  • ファイルの先頭に移動
    gg
  • ファイルの末尾に移動
    G

  • 直前の操作を取り消す(アンドゥ)
    u
  • リドゥ
    Ctr + r

  • 上書きモードに移行する
    R

  • 行をコピー(ヤンク)
    yy
  • 貼りつけ(ヤンクしたものを)
    p
  • 選択範囲をクリップボードにコピー
    Ctr + Insert
  • クリップボードから貼りつけ
    Shift + Insert