36

For this purpose, I wrote a small Symbol Information Palette. This palette let's you quickly look up usages, options and attributes of symbols and was tested on Mac OSX and Linux. Installation The source code is hosted on my GitHub site but to preview or install the palette you only have to evaluate this: Get["http://goo.gl/QPywk"] The link is just ...


23

as J.M. mentions, the Workbench is an Eclipse plug-in (and is available as such). Now, to display all files in some directory, you can do this: SetDirectory["~/Documents/Projects/other/playing"] (this is an arbitrarily selected directory on my machine). Then define doSomething[fname_] := CreateWindow[ DialogNotebook[ { TextCell[fname], ...


19

I used to think that Mathematica was an incorrigible memory hog until I visited this site and discovered the wonders of $HistoryLength. This seems to be a common complaint that is easily remedied. Below is a scattering of buttons that show the current value and allow it to be easily changed: historyLengthButtons := Grid[{Dynamic[Button[#, $HistoryLength = ...


18

You can simply assign the content of the palette to the docked cells, however this won't give any nice results for palettes that where not designed to be used as such: For instance, first open up a palette, I chose Basic Math input, then run plt = Notebooks[][[1]] CreateWindow[DockedCells -> NotebookGet[plt][[1]]] What you then end up with is a ...


16

I'm not sure if this is exactly what you need but this is what I've recently done to inform the user about ongoing calculation. Usage withProgressIndicator[proc, delay] Performs a proc, and when it lasts longer than delay (default 0), a progress indicator in dialog is created. It will be closed after finishing the proc. It should be run on Main Link, ...


16

OK, I guess I found something myself while trying to circumvent RunScheduledTask. DynamicModule[{prog = False}, Column[{ Button[ "Do heavy work", prog = True; Pause[10]; prog = False, Method -> "Queued" ], Dynamic@If[prog, ProgressIndicator[Appearance -> "Percolate"], Invisible[ProgressIndicator[Appearance ->...


13

Building on Kubas code here is an alternative which solves some (minor) problems: it will not leave behind scheduled tasks when the abort button is used, it works equaly well when the Alt+. shortcut is used to abort and it might work better when aborting preemptive evaluations. Here is the code: SetAttributes[withProgressIndicator, HoldFirst]; ...


12

Here is a bare bones tool to remove a palette and place it in a new directory. You can modify to delete the file entirely if you wish. You can modify the sources. There is an internal FE command to update the palette menu but I do not have that. You'll have to restart Mathematica. DynamicModule[{new, source1 = FileNameJoin[{$BaseDirectory, "...


12

The following expression will open the special characters palette: FrontEndExecute[{FrontEnd`NotebookOpen["SpecialCharacters.nb"]}] This expression was extracted from MenuSetup.tr: { $InstallationDirectory, "SystemFiles", "FrontEnd", "TextResources", $OperatingSystem , "MenuSetup.tr" } // FileNameJoin // FindList[#, "Special Character..."]& // First (...


9

You can use the following command to programmatically refresh the contents of the menus in Mathematica: MathLink`CallFrontEnd[FrontEnd`ResetMenusPacket[{Automatic, Automatic}]] This was mentioned by John Fultz in this MathGroup post as well as this answer.


8

In this answer I posted a large stock of undocumented FE tokens. Per your comment under the question, the required token is in that list: FrontEndTokenExecute["OpenFromPalettesMenu", notebookFileName]


8

There is a Wolfram blog by Oleg Marichev and Michael Trott which has an accompanying CDF demonstration (that can be downloaded here). This CDF can be used to explore distributions and their multitude of properties. It isn't the palette you described (it also doesn't paste a function template as the original palette probably did) but it may be useful ...


7

NOTE: This works on my Mathematica 10, but not tested on other versions. This method involving modification of a system file, thus is likely prohibited by the EULA. First locate the notebook corresponding to the Drawing Tools, which should be on a path similar to the following: (Mathematica root)\SystemFiles\FrontEnd\SystemResources\DrawingTools.nb ...


7

Using approach from How to customize the package editor interface? CopyFile @@ ( FileNameJoin[ {#, "SystemFiles", "FrontEnd", "Palettes", "BasicMathAssistant.nb"} ] & /@ {$InstallationDirectory, $UserBaseDirectory}) SetOptions[ NotebookOpen@%, { Saveable -> True, ClosingAutoSave -> True (*thx to Mr. Wizard*) } ] When you ...


6

WindowElements -> {"StatusArea"} CreatePalette[ PasteButton[ Style[StatusArea["\[Gamma]", "esc-g-esc"], FontFamily -> "Courier", 12], RawBoxes["\[Gamma]"], ImageSize -> {30, 20}], WindowStatusArea -> ":)", WindowElements -> {"StatusArea"}] Full answer: CreatePalette[ Table[With[{i = i}, ...


6

I see two problems here. First, Initialization is not a known option for CreatePalette: Options[CreatePalette, Initialization] Options::optnf: Initialization is not a known option for CreatePalette. >> Second, even if it were your use of Rule rather than RuleDelayed means that your initalization code will only be evaluated when the palette is ...


6

You can prevent the focus from being lost by setting certain system properties to true before calling any awt functionality: LoadJavaClass["java.lang.System", AllowShortContext -> False]; java`lang`System`setProperty["apple.awt.UIElement", "true"]; (* or use the property "java.awt.headless" instead *) These properties can also be specified in the ...


6

Try this: << AuthorTools` OpenAuthorTool[] Then clicking on some of the links open up palettes. MakeProject, MakeIndex, MakeContents, NotebookDiff, NotebookRestore, Paginate, ExportCells, InsertValue, SetPrintingOptions open for me (v12.1 Mac), the rest don't. I have no idea if they're actually functional though!


5

Using PasteButton with a matrix containing the desired matrix is one option. PasteButton["3x3 Matrix", MatrixForm@( { {\[Placeholder], \[Placeholder],\[Placeholder]}, {\[Placeholder], \[Placeholder],\[Placeholder]}, {\[Placeholder], \[Placeholder],\[Placeholder]} } )] PasteButton["1x3 Matrix", MatrixForm@( { {\[Placeholder], \[Placeholder]...


5

Suppose you have configured kernels "Kernel1" and "Kernel2", then this just works: CreatePalette[test, Evaluator -> "Kernel1"] CreatePalette[test2, Evaluator -> "Kernel2"]


5

This is a possible solution that I came up with after looking at another answer by @Ragfield: Encoding format used by GraphicsData? I had to modify the function decodePICT in that post to cut out the leading zero bytes: DecodePDF[data_String] := Module[{slash, backslash, zero, LF, CR, decode, codes, len, i}, {slash, backslash, zero, LF, CR} = ...


5

John Fultz posted an answer to this question here. Apparently, in this context, both ButtonNotebook and EvaluationNotebook are identical. The former is kept around for legacy purposes, but the latter is preferable because it is applicable in places other than in buttons.


5

The supported way to do this is to include a FrontEnd extension in the PacletInfo file, as in this example: Paclet[ Name -> "ExamplePackage", Version -> "1.0.0", MathematicaVersion -> "9+", Description -> "An example package.", Creator -> "WEG", Extensions -> { {"Kernel", Context -> {"ExamplePackage`"}}, {"...


5

Here you go: button[tok_][par_] := Button[par, FrontEndTokenExecute[tok, par]] Row /@ { button["FontFamily"] /@ {"Arial", "Bookman", "Times"}, button["FontColor"] /@ {Red, Green, Blue, Brown, Black, White}, button["FontSize"] /@ Range[10, 20, 2] } // Column // CreatePalette


5

This is what I've came up with so far: Outline[] := CreatePalette[ Dynamic[Refresh[ Column@Cases[ NotebookRead /@ Cells[SelectedNotebook[], CellStyle -> {"Section", "Subsection", "Subsubsection", "Subsubsubsection"}], Cell[name_, style : "Section" | "Subsection" | "Subsubsection" | "...


5

Button["Backspace", SelectionMove[EvaluationNotebook[], Previous, Character]; SelectionMove[EvaluationNotebook[], All, Character]; NotebookDelete[EvaluationNotebook[]]]


5

Here's something you can try: CurrentValue[EvaluationNotebook[], {InputAliases,"ch"}] = ActionMenuBox[ "g1", { "g1":>NotebookWrite[EvaluationBox[], "g1"], "g2":>NotebookWrite[EvaluationBox[], "g2"] }, Appearance->"PopupMenu", AutoAction->True ] A short animation: The left hand side of the rule is what you see in the ...


5

Why not use an InputAutoReplacements instead? For example: CurrentValue[EvaluationNotebook[], {InputAutoReplacements, "ww"}] = "Ω" Then you can type: w w Control+- to enter the desired subscript. If you really want to use KeyEventTranslations.tr to do this, then you need to enter boxes: Item[KeyEvent["O", Modifiers -> {Control, Command, Shift}], ...


4

This is a supplementary answer to what John Fultz has provided. Problem 1: The problem is that sometimes I can't include all functionality inside the palette nor I can call Needs to load it after kernel restart because the package initialization is a little bit complicated. What I'm fine with though is to be able to close the Palette/Dialog/GUInotebook as ...


4

As you already have the selection set to the cell and NotebookFind returns that selection, you could just use CurrentValue on it as here: PaletteNotebook[ Button[Style["Blog it", 12, FontFamily -> "Times"], Module[{ nb = InputNotebook[], out = NotebookCreate[], retval }, SelectionMove[nb, Before, Notebook]; retval = NotebookFind[...


Only top voted, non community-wiki answers of a minimum length are eligible