Add a textbox containing a graph's name or title

Average rating
(0 votes)

// Adds a textbox containing the graph's name or title.
 
// Example
// Make/O/N=10 wave0=p
// Display wave0 as "Graph of wave0"
// AddGraphTitleTextbox("")
 
Function/S WindowTitle(WindowName) // Returns the title of a window given its name.
        String WindowName // Name of graph, table, layout, notebook or control panel.
 
        String RecMacro
        Variable AsPosition, TitleEnd
        String TitleString
 
        if (strlen(WindowName) == 0)
                WindowName=WinName(0,1)         // Name of top graph window
        endif
 
        if (wintype(WindowName) == 0)
                return ""                       // No window by that name
        endif
 
        RecMacro = WinRecreation(WindowName, 0)
        AsPosition = strsearch(RecMacro, " as \"", 0)
        if (AsPosition < 0)
                TitleString = WindowName        // No title, return name
        else
                AsPosition += 5                 // Found " as ", get following quote mark
                TitleEnd = strsearch(RecMacro, "\"", AsPosition)
                TitleString = RecMacro[AsPosition, TitleEnd-1]
        endif
 
        return TitleString
End
 
Function AddGraphNameTextbox(graphName)
	String graphName				// "" for top visible graph
 
	if (strlen(graphName) == 0)
		graphName = WinName(0, 1, 1)
	endif
	if (strlen(graphName) == 0)
		return -1					// There are no graphs.
	endif
 
	DoWindow $graphName
	if (V_flag == 0)
		return -1					// There is no graph with that name.
	endif
 
	String text
	sprintf text, "Graph name is %s", graphName
	Textbox /C/N=GraphName /W=$graphName text
	return 0
End
 
Function AddGraphTitleTextbox(graphName)
	String graphName				// "" for top visible graph
 
	if (strlen(graphName) == 0)
		graphName = WinName(0, 1, 1)
	endif
	if (strlen(graphName) == 0)
		return -1					// There are no graphs.
	endif
 
	DoWindow $graphName
	if (V_flag == 0)
		return -1					// There is no graph with that name.
	endif
 
	String title = WindowTitle(graphName)
 
	String text
	sprintf text, "%s", title
	Textbox /C/N=GraphTitle /W=$graphName text
	return 0
End

Back to top