ツールバー入門
ツールバー入門
ルーラーとは,選択されたセルのテキストの余白およびセルの名称・キーワードのインデントを設定するために使用されるツールバーである.ノートブックのルーラーは,ウィンドウメニューのツールバー ▶ ルーラーを選ぶことによりノートブックに加えることも,ノートブックオプションWindowToolbarsを使ってプログラム的に加えることもできる.
| WindowToolbars->"RulerBar" | 余白設定のルーラーを表示するためのオプション値 |
| ウィンドウ ▶ ツールバー ▶ ルーラー | ノートブックの上部にルーラーを表示するかどうかを切り替えるメニュー項目 |
ルーラーはSetOptions[EvaluationNotebook[],WindowToolbars->"RulerBar"]を評価して,現在のノートブックに表示することができる.
| DockedCells->cells | ノートブック上部のドックとして表示されるセルのリストを与えるノートブックオプション |
cells にはどのようなタイプのセルも含ませることができるが,セルスタイル"DockedCell"のセルだけを使った方がよい.スタイル"DockedCell"を使うと,セルがツールバーのように確実に動作するようなる.
ドックセルを実装する方法の一つに,SetOptions[EvaluationNotebook[],DockedCells->cells]を使うというものがある.
CreateWindow[DockedCells -> Cell["Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "DockedCell", Background -> LightBlue]];CreateWindow[DockedCells -> Cell[BoxData[FormBox[RowBox[{"sin", "(", "x", ")"}], TraditionalForm]], "DockedCell", Background -> LightGreen]];ドックセルの中では,アクションメニュー,ポップアップメニュー,ボタン,入力フィールド等のコントロールオブジェクトを使用することができる.ツールバーの内容を作成しそれをToBoxesでラップすると,自動的にフロントエンドのボックス構造が生成される.その後ToBoxes式をCellのBoxDataに入れる.次の入力では,選択されたスタイルを持つセルを挿入点に置くアクションメニューツールバーが作成される.
ex1 = Grid[{{Item[Row[{Style["Wolfram", Bold, 14, FontFamily -> "Helvetica"], Style["Mathematica", Italic, Bold, 14, FontFamily -> "Helvetica"]}, Spacer[1]], Alignment -> Left], Item[ActionMenu["Choose a Style...", {"Title" :> FrontEndTokenExecute[InputNotebook[], "Style", "Title"], "Subtitle" :> FrontEndTokenExecute[InputNotebook[], "Style", "Subtitle"], "Subsubtitle" :> FrontEndTokenExecute[InputNotebook[], "Style", "Subsubtitle"]}], Alignment -> Right]}}, ItemSize -> {{15, 10}}];CreateWindow[DockedCells -> Cell[BoxData[ToBoxes[ex1]], "DockedCell"]];ツールバー要素間のスペースが静的であると,ウィンドウ幅によってはドックセルの要素で隠れてしまうものがあるかもしれない.これは項目の大きさをGridでスケールすることで避けることができる.次の例題にはラベルとButtonBarが含まれている.
ex2 = Grid[{{Item[Style["Evaluation Tools:", FontFamily -> "Helvetica", 12, Bold], Alignment -> Left], Item[ButtonBar[{Style["Delete All Output", 10] :> FrontEndTokenExecute["DeleteGeneratedCells"], Style["Abort Evaluation", 10] :> FrontEndTokenExecute["EvaluatorAbort"], Style["Quit Kernel", 10] :> FrontEndTokenExecute["EvaluatorQuit"]}], Alignment -> Right]}}, ItemSize -> {{Scaled[0.3], Scaled[0.7]}}];CreateWindow[DockedCells -> Cell[BoxData[ToBoxes[ex2]], "DockedCell", Background -> RGBColor[1, 0.991791, 0.866468]]];CreateWindow[DockedCells -> {Cell[BoxData[ToBoxes[ex1]], "DockedCell"], Cell[BoxData[ToBoxes[ex2]], "DockedCell", Background -> RGBColor[1, 0.991791, 0.866468]]}];ワープロツールバー
次の例題には,段落配置や行間隔の設定およびフォントダイアログ,印刷ダイアログ,ドキュメントセンターを開くためのボタンが含まれている.この例題では,ツールバー要素のそれぞれが別々に生成され,最後のCreateWindow文でToBoxesを使ってボックスに変換されている.
alignmentsSpacings = Row[Flatten[{Button[Grid[{{"---"}, {"--"}, {"---"}, {"-"}}, BaseStyle -> {9, "Label", Bold}, Alignment -> {"Columns" -> {{#}}}, Spacings -> {"Columns" -> {{0}}, "Rows" -> {{-.8}}}], {SelectionMove[InputNotebook[], All, Cell], SetOptions[NotebookSelection[InputNotebook[]], TextAlignment -> #]}, Appearance -> "Palette", ImageSize -> {27, 20}]& /@ {Left, Center, Right}, Button[Grid[#1, BaseStyle -> {9, "Label", Bold}, Alignment -> {"Columns" -> {{Right}}}, Spacings -> {"Columns" -> {{0}}, "Rows" -> {{#2}}}], {SelectionMove[InputNotebook[], All, Cell], SetOptions[NotebookSelection[InputNotebook[]], #3]}, Appearance -> "Palette", ImageSize -> {27, 20}]&@@@{{{{"---"}, {"---"}, {"---"}, {"---"}}, -0.8, TextJustification -> 1}, {{{"---"}, {"---"}}, -0.8, LineSpacing -> {1, 3}}, {{{"---"}, {"---"}}, -0.5, LineSpacing -> {1.5, 3}}, {{{"---"}, {"---"}}, -0.1, LineSpacing -> {2, 3}}}}]]font = Button[Style["A", Bold, Italic, 20, FontFamily -> "Times", FontColor -> RGBColor[0.002166781109330892, 0., 0.5113145647364004]], FrontEndTokenExecute["FontPanel"], Appearance -> None, ImageSize -> {27, 18}]print = Button[ImageResize[[image], {26, 19}], FrontEndTokenExecute["PrintDialog"], Appearance -> None, ImageSize -> {27, 20}]help = Button[Framed[Style["?", 9.1, Bold, FontFamily -> "Helvetica"], Background -> LightGreen, RoundingRadius -> 15, ImageSize -> {Automatic, 18}], FrontEndTokenExecute["SelectionHelpDialog"], Appearance -> None, ImageSize -> {27, 20}]labels = Style[#, 9, FontFamily -> "Helvetica"]& /@ {"Alignment", "Fonts", "Print", "Help"}CreateWindow[DockedCells -> Cell[BoxData[ToBoxes[Grid[{{alignmentsSpacings, font, print, help}, labels}, Spacings -> {{0, 6, 20, 2}, {Automatic}}]]], "DockedCell"]];装飾的ツールバー
image = Cell[BoxData[ToBoxes[[image]] /. {(ImageSize -> {___, ___}) -> (ImageSize -> {1399, 24})}], "DockedCell", Background -> Black, ImageMargins -> 0, CellMargins -> {{0, 0}, {0, 0}}, CellFrameMargins -> {{0, 0}, {0, 0}}];CreateWindow[DockedCells -> image];スタイルシートでのツールバーの定義
スタイルシートのDockedCellsオプション値はスタイルシートノートブック内のノートブックスタイル定義セルに保存されている.ドックセルを追加するためには,まずスタイルシートノートブックを開く.スタイルシートの中にこのセルがまだ存在していなければ,Cell[StyleData["Notebook"]]という式を含む新規セルを作成し,それをスタイルシートノートブックの上部に置く.
ノートブックのスタイル定義セル式をCell[StyleData["Notebook"],DockedCells->{cells}]のような形式に更新することにより,ドックセル cells をスタイルシートに加える.例えば,前の例題からのセルを出力する.
image//CellPrint出力されたセルの式を表示し,そのセル式をノートブックスタイル定義セルのDockedCellsオプション値としてコピーする.