おや,Wikiの場合はボタンがはみ出しませんね.
フォーラム投稿の時のHTMLエディタではボタンがハミ出すのですが...呼び出し方が違うのか?
強制的に幅を変えるには,一応,以下の二箇所のいずれかでwidthを変えればOKなのですが,フォーラム投稿の場合は正常に機能しません(テキスト入力エリアのみ変わる).
editor/htmlarea/htmlarea.php
(1) HTMLArea.Configのthis.width
this.width = "auto"; を
this.width = "800"; などに変更すると強制的にその幅になる.
(2) HTMLArea.prototype.generate
var width = の次あたりで,
width += 100;のように加算するとそれだけ幅が広がる.
Wikiもフォーラムもtextareaの指定(cols, rows)はあまり意味を持っていませんね.Wikiはprint_textarea()を使っているのに対して,フォーラムはaddElement()を使っている違いはあっても,作成されたtextareaをハックしてサイズを変更しているようです.
テキスト入力フォームの幅はツールバーのサイズ(this._toolbar.offsetWidth)を取得して幅を合わせています.したがって,この値を勝手にイジってもツールバーの幅は変わらず,テキスト入力エリアの幅だけが変動します.
したがってツールバー作成(HTMLArea.prototype._createToolbar)に問題があると思われるのですが,WikiではOKでフォーラム投稿のフォームではNGである理由がハッキリとしません.
ツールバーはdocument.createElement("div")で<div>のエレメントを作成し,それに対してボタン類を追加して行きます.newlineやseparatorといった指示以外のものが指定(つまりボタン)された場合は,
var img = document.createElement("img");
img.src = btn[1];
img.style.width = "18px";
img.style.height = "18px";
el.appendChild(img);
このようにイメージとして追加します.このwidthを実際の大きさである(確認しました)アイコン画像の幅18pixではなく,たとえば16pixに改変すればツールバーの幅内にボタンは収まります.とはいえアイコンは縦長になりますが...何かおかしい.IE7でもFirefox3でも同じ現象です.moodle.orgでもフォーラム投稿時には”エディタを大きくする”のボタンが半分ハミ出していますよね? いままではわざとだと思っていたのですけれども,どうやらなんらかのバグのようです.
話が脱線してきましたので,この議論は以下のフォーラムに続けます.
http://moodle.org/mod/forum/discuss.php?d=127176#p557153