Georgy addition of Context Help documentation; formatting by Andrea
authorGood Guy <good1.2guy@gmail.com>
Sun, 16 May 2021 00:55:32 +0000 (18:55 -0600)
committerGood Guy <good1.2guy@gmail.com>
Sun, 16 May 2021 00:55:32 +0000 (18:55 -0600)
parts/Developer.tex
parts/Editing.tex
parts/Installation.tex
parts/Introduction.tex
parts/Plugins.tex
parts/Quickstart.tex
parts/Shortcuts.tex
parts/Trouble.tex

index f1996945d5950a730f08e9015c1bbd780b7e75b0..783d64bed7cce5bd03fc0dfe2b27590d21197af6 100644 (file)
@@ -731,3 +731,171 @@ example, the SUV theme has over 800 lines in the initialize function, and has ov
 500 png images in the data directory.  Most of these images and data values are
 required to be initialized by the custom theme constructor; very tedious and
 time consuming work.  Creating a new theme is usually a lot of work.
+
+\section{How Context Help works in the Program Code}
+\label{sec:context_help_coding}
+\index{context help}
+
+All class methods related to context help start with the common pattern \texttt{context \_help} in their names. It is easy to get all occurences in the code with the following command (example):
+
+\begin{lstlisting}[style=sh]
+        grep -F context_help `find . -name '*.[Ch]' -print`
+\end{lstlisting}
+
+The base functionality is defined in several \textit{BC\_WindowBase} class methods in \\ \texttt{guicast/bcwindowbase.C} (search on \texttt{context\_help}). All BC\_Window's and BC\_SubWindow's inherit these methods.
+
+For the simplest case of context help definition, it is sufficient to add the call to \texttt{context\_help\_set\_keyword()} in the most inclusive widget constructor. If \texttt{Alt/h} is pressed with the mouse over this widget's window, its \texttt{keypress\_event()} method (inherited from BC\_WindowBase) will catch this hotkey, fetch the keyphrase defined by \texttt{context\_help\_set\_keyword()} and call the \texttt{doc/ContextManual.pl} script with this keyphrase. Then ContextManual.pl script does the whole processing of the keyphrase given and calls web browser to display the found HTML manual page. The browser is called in the background to prevent from blocking the calling \CGG{} thread.
+
+An example from \textit{cinelerra/zoombar.C}:
+
+\begin{lstlisting}[style=sh]
+        ZoomBar::ZoomBar(MWindow *mwindow, MWindowGUI *gui)
+        : BC_SubWindow(...)
+        {
+                this->gui = gui;
+                this->mwindow = mwindow;
+               context_help_set_keyword("Zoom Panel");
+       }                                                        
+\end{lstlisting}
+
+If \texttt{Alt/h} is pressed with the mouse over some subwindow (arbitrary depth) of the \texttt{context\_help\_set\_keyword()} caller, the \texttt{keypress\_event()} method of that subwindow catches the hotkey. Its own context help keyword, probably, will be empty. In this case the whole widget hierarchy is traced up to \textit{top\_level} widget, their context help keywords are checked, and the first nonempty keyword is used for context help.
+
+This approach allows us to define the help keyword common to the whole dialog window with a bunch of diverse buttons with a single call to \texttt{context\_help\_set \_keyword()}, without placing such a call into each button constructor. And at the same time, this approach allows to assign different help keywords to GUI elements belonging to the same window but documented in different manual pages.
+
+\subsubsection{An example with several different help keywords from cinelerra/mwindowgui.C:}%
+\label{ssub:exemple_different_help_keywords}
+
+\begin{lstlisting}[style=sh]
+        MWindowGUI::MWindowGUI(MWindow *mwindow)
+        : BC_Window(_(PROGRAM_NAME ": Program"), ...)
+        {
+                this->mwindow = mwindow;
+                ...
+                context_help_set_keyword("Program Window");
+        }
+        ...
+        FFMpegToggle::FFMpegToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y)
+        : BC_Toggle(...)
+        {
+                this->mwindow = mwindow;
+                this->mbuttons = mbuttons;
+                set_tooltip(get_value() ? FFMPEG_EARLY_TIP : FFMPEG_LATE_TIP);
+                context_help_set_keyword("FFmpeg Early Probe Explanation");
+        }
+        ...
+        StackButton::StackButton(MWindow *mwindow, int x, int y)
+        : BC_GenericButton(x, y, mwindow->theme->stack_button_w, "0")
+        {
+                this->mwindow = mwindow;
+                set_tooltip(_("Close EDL"));
+                context_help_set_keyword("OpenEDL");
+        }
+        ...
+        ProxyToggle::ProxyToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y)
+        : BC_Toggle(...)
+        {
+                this->mwindow = mwindow;
+                this->mbuttons = mbuttons;
+                ...
+                context_help_set_keyword("Proxy");
+        }
+        \end{lstlisting}
+If the widget we wish to add context help to, overloads keypress\_event() of the base class with its own method, then it is necessary to introduce a small addition to its keypress\_event() handler: the call to \texttt{context\_help\_check\_and\_show()} has to be added in a suitable place in the handler.
+
+An example with \texttt{context\_help\_check\_and\_show()} from \textit{cinelerra/mbuttons.C}:
+\begin{lstlisting}[style=sh]
+       int MButtons::keypress_event()
+       {
+           int result = 0;
+           if(!result) {
+               result = transport->keypress_event();
+           }
+           if(!result) {
+               result = context_help_check_and_show();
+            }
+           return result;
+       }
+\end{lstlisting}
+
+All the keypress handlers are not equal, therefore we provide different variants of the methods context\_help\_check\_and\_show() and context\_help\_show() (the latter for explicit checking on hotkey).
+
+An example with context\_help\_show() from cinelerra/editpanel.C:
+\begin{lstlisting}[style=sh]
+        int EditPanelTcInt::keypress_event()
+        {
+                if( get_keypress() == 'h' && alt_down() ) {
+                        context_help_show("Align Timecodes");
+                        return 1;
+                }
+                ...further processing...
+                return 1;
+        }
+\end{lstlisting}
+
+A single example of much more sophisticated keypress\_event() handler can be found in \texttt{cinelerra/trackcanvas.C} (search on context\_help). The problem here was to track the particular object drawn on the canvas to figure out whose context help is to be requested. Another rare example of difficulty may appear when context help is desired for some GUI object which is not subclassed from BC\_WindowBase.
+
+\textit{ContextManual.pl} looks for occurence of keyphrases in the following order:
+
+\begin{enumerate}
+        \item In \textit{Contents.html}
+        \item In \textit{Index.html}
+        \item In all the \textit{CinelerraGG\_Manual/*.html} files via grep
+\end{enumerate}
+
+Keyphrase matching is tried first exact and case sensitive, then partially and case insensitive. The special keyword \texttt{TOC} shows Contents, \texttt{IDX} shows Index. If the keyword starts with \texttt{FILE:}, the filename after \textit{FILE:} is extracted and that file is shown. You can look in the ContextManual.pl script text.
+
+For debugging purposes the script can be called from command line. For this to work, the environment variable \texttt{\$CIN\_DAT} has to be set to the parent directory of doc.
+
+
+\subsubsection{Providing context help for plugins}%
+\label{ssub:providing_context_help_plugins}
+
+In the simplest case, nothing has to be done at all. The plugin context help functionality introduced in \texttt{cinelerra/pluginclient.C} automatically assigns context help keyword from the plugin's title for all plugins subclassed from \textit{PluginClient}. For this to work, the manual page documenting the plugin must be entitled identically to the programmatic title of the plugin. A special treatment can be necessary in the following cases:
+
+\begin{enumerate}
+        \item \textit{Rendered effects} are not subclasses of PluginClient and require an explicit context help definition via \texttt{context\_help\_set\_keyword().}
+        \item Only the main plugin dialog inherits context help functionality from the parent class. If a plugin opens additional dialog windows, they probably require explicit context help definitions.
+        \item If the plugin title differs from its subsection title in the documentation, either its help keyword or the corresponding title in the manual should be renamed. Another possibility can be an addition to the \textit{\%rewrite table} in \texttt{doc/ContextManual.pl}.
+        \item If the plugin title contains some characters special for HTML and/or Perl regular expression syntax, the special characters have to be escaped. For example, the keyphrase corresponding to the title \textit{Crop \& Position (X/Y)} should be converted to:
+
+        \begin{lstlisting}[style=sh]
+                Crop & Position \\(X\\/Y\\)
+        \end{lstlisting}
+
+        Such a rewriting can be done either in the C++ code or in ContextManual.pl.
+\end{enumerate}
+
+One additional explanation about previous user information when plugin tooltips are off. Help for the \textit {selected plugin} is shown because in this case it would be difficult to figure out, without a visual feedback, which particular item is currently under the mouse.
+
+\subsection{Manual Maintenance is now Tightly Coupled with the Program Code}
+\label{sub:manmaintain}
+
+If some section of the \CGG{} manual gets renamed and is used for Context Help, the corresponding help keywords should be adjusted too. All the keywords used can be listed via the following example command:
+
+\begin{lstlisting}[style=sh]
+       grep -F context_help `find . -name '*.C' -print` | grep -F '"'
+\end{lstlisting}
+----------------
+
+Note that the keyword does not have to exactly match the section title; it can also be a case insensitive substring of the section title.
+
+If some new \CGG{} window or dialog is created and documented, the inclusion of context\_help\_set\_keyword() calls and/or adaptation of keypress\_event() handler (if any) should be included in the program code.
+
+If some new \CGG{} plugin is created, it is best to document it in the section entitled exactly equal to that plugin's title. Then probably its context help will work out of the box. Otherwise, some adaptation to its keypress\_event() (if any) or to the %rewrite table in ContextManual.pl may be necessary.
+
+Why the local copy of \CGG{} manual should be used?
+
+\begin{enumerate}
+       \item For context help keyphrases matching, the local copy of \textit{Contents.html} and \textit{Index.html} is necessary anyway.
+       \item Grepping \textit{CinelerraGG\_Manual/*.html} files of the remote manual from the website cannot work per definition.
+       \item The local copy usage ensures exact matching of the version of the manual to the version of \CGG{}. Otherwise, if one uses for some reason an older version of \CGG{} with the help fetched from the newer version of the website manual, various incompatibilities can be expected.
+       \item Packing the manual into AppImage, the current method of \CGG{} packaging, should be much easier than merging two different git branches when building from source packages, as was earlier.
+\end{enumerate}
+
+What about Localization?
+
+For now, \CGG{} context help is not localized at all. There is no complete \CGG{} manual in any language except English. But even should the manual be translated to other languages, the context help keywords must remain unlocalized literal string constants. First, because the set of languages known to \CGG{} itself is not the same as the set of languages the manual will be translated to. If some "translated keyword" is fed to the help system, while the manual in this language does not exist, keyword matching cannot succeed. Second, such a help localization with the translation of all keywords can be done and then maintained much easier and much more reliably inside the ContextManual.pl script rather than in the \CGG{} binary.
+
+More about ContextManual.pl file?
+
+The bin/doc/ContextManual.pl script can be configured further. Look in the script text. You can define your preferable web browser, or redefine it to 'echo' for debug purposes. There are also some predefined HTML pages for Contents and Index, and several explicitly rewritten keyphrases. 
index 47af1847b49f6884e9b8cc5615f690da0db54bdf..3a80b75c9f8e72743151a8af2c726ce959ca9442 100644 (file)
@@ -1811,7 +1811,10 @@ cat "/sys/kernel/debug/hid/0003:0B33.0030.0006/events"  # press keys to see the
 
 The following is the default setting for the ShuttlePROv2 and
 ShuttleXpress (table~\ref{tab:shuttleprov2} and
-table~\ref{tab:xpress}):
+table~\ref{tab:xpress}).  This page can be quickly requested from \CGG{} by
+pressing both the left and right Alt keys on the keyboard followed by pressing
+any button on the Shuttle. To cancel this mode, press any single modifier key
+(\texttt{Alt, \texttt{Ctrl}} or Shift) once.
 
 \renewcommand{\arraystretch}{1.15}
 \begin{table}[ht]
index 696bb0c3a51ccb3bddaec0db4c778afaff5a4fa2..aef42402db1da652351d7a4020566cfe16a10426 100644 (file)
@@ -40,18 +40,7 @@ Finally start the program from a window in the directory where the image is stor
        $ ./CinGG-yyyymmdd.AppImpage
 \end{lstlisting}
 
-or create a convenient desktop icon with a link to the run action:
-
-\begin{enumerate}
-       \item right-click on the appimage file
-       \item Properties
-       \item Application Tab
-       \item Command:
-       \begin{lstlisting}[style=sh]
-               /path/to/appimage/./CinGG-yyyymmdd.AppImage
-       \end{lstlisting}
-       \item OK
-\end{enumerate}
+or create a convenient desktop icon with a link to the run action, or do a \textit{Desktop Integration} manually or with external programs.
 
 Most distros already have the libraries to run the appimage, but if not you may need an additional installation. For example Arch Linux needs the \texttt{libappimage} package.
 
index 55f131d2bd37054c47934dd92135eed354311e8a..a50836c3bf59439a4ba5272d891a93f3719e6029 100644 (file)
@@ -56,6 +56,12 @@ the \emph{current state} of Linux software, enhanced with additional
 imagined by dedicated users and then implemented by professional
 programmers.
 
+\textit{Context Help} when using \CGG{} accesses pages of the HTML
+version of this manual when requested.  A relevant section of the manual
+can be quickly recalled in the user's configured web browser window by
+pointing with the mouse on the GUI item of interest and pressing the
+hotkey Alt/h. For more detailed information see \ref{sec:help_context_help}.
+
 \begin{description}
     \item[Website] \href{https://www.cinelerra-gg.org}{https://www.cinelerra-gg.org}\\
         The website for the cinelerra-gg software is a good place to start for information, help, and documentation.
@@ -86,6 +92,7 @@ programmers.
                 and recently released AV1 and WebP
             \item raw image format for over 700 supported cameras, courtesy Dave Coffin's DCraw
         \end{itemize}
+
         \item[Standard Features]~\\
             \begin{itemize}
                 \item Program window for video and audio tracks, navigation, popups, playing and seeking functions.
@@ -107,6 +114,7 @@ programmers.
                 \item Numerous pre-defined output formats automatically available and allowance for user-defined formats.
                 \item Capture and Recording capability to include Broadcast TV recording, editing, and viewing.
                 \item Hundreds of Shortcuts are defined which are easily viewed using the shell commands pulldown.
+               \item Context Help in the program for numerous window, menu, GUI elements, buttons, and other items via the user's configured web browser.
                 \item PorterDuff operations are available in the patchbay of the main timeline window for alpha blending.
                 \item Color correction + 8-bit and 10-bit color space.
                 \item Up to 8K video supported.
@@ -237,7 +245,7 @@ And which chapters are important for beginning to learn to use \CGG{}. At the en
 
     \item[Chapter~\ref{cha:troubleshooting_help}] \nameref{cha:troubleshooting_help}.
 
-        Use this chapter for diagnosing a problem and find out what to report to get the best resolution or help.
+        Use this chapter for diagnosing a problem and find out what to report to get the best resolution or help.  Context Help, using Alt/h, is explained here.
 
     \item[Chapter~\ref{cha:performance_tips}]  \nameref{cha:performance_tips}.
 
index cfdb2a1fe0f6d088e3dd6eaae1c4762a79572fe2..d03da42f8f2ac9b18e81a2456beedaac134ec795 100644 (file)
@@ -192,6 +192,15 @@ To get a short one or a few lines description of a plugin, mouse over that plugi
     \label{fig:info-effect}
 \end{figure}
 
+\textit{Context Help} provides more detailed information about the plugin in 4 possible
+ways using the Alt/h hotkey combination. 
+\begin{enumerate}
+        \item Pressing \texttt{Alt/h} with the mouse in the dialog window of that plugin's settings menu.
+        \item Pressing \texttt{Alt/h} while pointing with the mouse on the plugin bar in a track, transition bar, or transition icon.
+        \item Pressing \texttt{Alt/h} while pointing on the plugin name (icon) in the Resources window. If plugin tooltips are on, help for the highlighted plugin under the mouse is shown. If plugin tooltips are off, help for the selected plugin is shown.
+        \item Pressing \texttt{Alt/h} while pointing on the plugin name in the \textit{Attach Effect} dialog menu.
+\end{enumerate}
+
 \subsection{Delete Plugins to save Resources Space or make them Unavailable}%
 \label{sub:delete_plugin_resouces_unavaible}
 
@@ -2143,7 +2152,7 @@ To save time the motion result can be saved in a file for later reuse, recalled
        \label{fig:motion}
 \end{figure}
 
-Motion tracking parameters:
+Motion tracking parameters\protect\footnote{credit Georgy (sge)}:
 
 \begin{description}
     \item[Track translation] Enables translation operations. The motion tracker tracks $X$ and $Y$ motion in the \textit{master} layer and adjusts $X$ and $Y$ motion in the \textit{target} layer.
index e7a646e7731b96b79f8bee28c2ce7a41edf15fa1..346eaabc4857cc9a2efcb84cfa65f60bc3f37d2d 100644 (file)
@@ -53,6 +53,11 @@ Any of these windows can be resized to better suit your needs.  Note that if you
 
 It is important to know that \CGG{} does not directly change your media.  It writes all changes to what is called the EDL, Edit Decision List.  This way you original media remains completely intact.
 
+Before you get startedi here is a note about \textit{Context Help}. If you need more
+detailed information on a window, menu, button or other particular GUI element than
+is shown in the tooltip, press Alt/h hotkey and the HTML page in your configured web
+browser will display the documentation for the item currently under the mouse.
+
 \subsection{Load Media}%
 \label{sub:load_media}
 
@@ -152,6 +157,11 @@ You can skip this step if you want the format of your output to be the same as y
        large video can be time-consuming.
 \end{enumerate}
 
+If you need more detailed information on a button or other particular GUI
+element than is shown in the tooltip, press Alt/h hotkey and the HTML page
+in your configured web browser will display the documentation for the item
+currently under the mouse.
+
 \subsection{Edit/Compose}%
 \label{sub:edit_compose}
 
index 617495dd08c095ac0b950ecf02b45b93fc5de403..8a1d7532a9d73796000d997ed65c8e01b9efa495 100644 (file)
@@ -20,7 +20,13 @@ Otherwise, \CGGI{} is completely desktop-neutral and has no
 requirements of some special window manager's support.
 
 Here the shortcuts are listed organized by window and type. Some specific alternatives are listed in~\ref{ssub:key_alternatives} in the "Key Alternatives" paragraph.  Any reference to
-Alt or Ctrl always refers to the left one on the keyboard.
+Alt or Ctrl always refers to the left one on the keyboard.  In addition to this
+manual, you can view the shortcuts in html format via the \textit{shell cmds} icon
+on the top, right corner of the main program window.  There is also a \textbf{hotkey
+Alt/h}, that can be used just about anywhere to get help on a specific window, menu,
+item, tooltip, button, and other elements (see \ref{sec:help_context_help}).
+
+
 
 \section{Main window }%
 \label{sec:main_window}
index 2ff131a16786311d6550e5877c95ded36fe2b2af..2f14a5d24f47de4e5b174222947bcdcf165060f6 100644 (file)
@@ -1,6 +1,91 @@
 \chapter{Troubleshooting and Help}%
 \label{cha:troubleshooting_help}
 
+\section{Help and Context Help}%
+\label{sec:help_context_help}
+\index{context help}
+
+\CGG{} is a complex and feature-rich program. Using a guide is indispensable. The official manual (in English) can be found in PDF and HTML format:
+
+\url{https://cinelerra-gg.org/download/CinelerraGG_Manual.pdf}
+
+\url{https://cinelerra-gg.org/download/CinelerraGG_Manual/}
+
+From within the program, you can invoke \textit{Context Help}, which references sections of the HTML manual\protect\footnote{credit Georgy(sge) for full implementation}.
+
+Context help can be requested from almost any \CGG{} window or subwindow by pointing with the mouse cursor on the GUI element of interest and pressing \texttt{Alt/h}. That HTML manual page will be shown via the configured web browser, which is assumed as most relevant to the GUI element currently under the mouse pointer.
+
+\subsection{How it works}%
+\label{sub:how_it_works}
+
+The hotkey to request context help is \texttt{Alt/h}. What particular help page is shown, depends on the mouse cursor location while \texttt{Alt/h} is pressed. Usually, when the mouse is located in some window or dialog, the help page related to the functionality of this window or dialog is shown. In this case the mouse can point either on some widget, or on an empty area in the window. In \CGG{} GUI there are several rich loaded windows, \textit{Timeline} and \textit{Compositor} for example. In such a case different help pages can be requested depending on the particular GUI element under the mouse. For example, pressing \texttt{Alt/h} while pointing on the \textit{Autos curve} in a track would show help on \textit{automation keyframes} section, pointing on the \textit{Overlay} mode button in the \textit{patchbay} would show help on \textit{overlays}, pointing on the \textit{camera control} in \textit{Compositor} would show help on \textit{camera and projector}.
+
+If no context dependent help page is found, the manual page of Contents itself is shown.
+
+\subsection{Requesting context help for plugins}%
+\label{sub:context_help_plugins}
+\index{context help!plugins}
+
+There are several possibilities to request the help page for a particular plugin of interest.
+
+\begin{enumerate}
+       \item Pressing \texttt{Alt/h} with the mouse in the dialog window of that plugin's settings menu.
+       \item Pressing \texttt{Alt/h} while pointing with the mouse on the plugin bar in a track, transition bar, or transition icon.
+       \item Pressing \texttt{Alt/h} while pointing on the plugin name (icon) in the Resources window. If plugin tooltips are on, help for the highlighted plugin under the mouse is shown. If plugin tooltips are off, help for the selected plugin is shown.
+       \item Pressing \texttt{Alt/h} while pointing on the plugin name in the \textit{Attach Effect} dialog menu.
+\end{enumerate}
+
+\subsection{Requesting context help on Contour Shuttle}%
+\label{sub:context_help_contour_shuttle}
+\index{context help!contour shuttle}
+
+Contour Shuttle has no \texttt{Alt/h}. Nevertheless, its help page can be requested by simultaneously pressing both \texttt{Alt} keys (left and right) on the keyboard followed by pressing any button on the Contour Shuttle. Here, pressing both Alt keys is necessary due to the way X11 tracks the status of modifiers. To cancel this mode, press any single modifier key (\texttt{Alt, \texttt{Ctrl}} or Shift) once.  Note that the manual Shuttle Configuration will be the default one, rather than the one that you may have redefined.
+
+\subsection{Alternative web browser configuration}%
+\label{sub:alt_browser}
+\index{context help}
+
+If you prefer to get \textit{Context Help} pages displayed in the same tab
+in your browser instead of each help request displayed in a different tab,
+choose an alternative method as outlined here that works for you.
+
+\begin{enumerate}
+       \item Use another browser which has such a configurable mode. Here is an example for Seamonkey:
+\begin{lstlisting}[style=sh]
+       export CIN_BROWSER=seamonkey
+\end{lstlisting}
+In the seamonkey browser go to Edit -> Preferences... -> Browser -> Link
+Behavior -> Links from other applications .
+Set the option "Open links passed from other applications in:" to the value
+"The current tab/window".
+
+       \item Hack a default browser if you know how to hack it. Here is an example for Firefox.
+Start Firefox and open the pseudo-URL:
+\begin{lstlisting}[style=sh]
+       about:config
+\end{lstlisting}
+There will be a warning like "I'll be careful, I promise!", acknowledge it.
+Then there is a very long list with lots of undecipherable variable names.
+Scroll down to the variable: browser.link.open\_newwindow.override.external .
+By default it has value of -1, which means "use value of the more general
+variable: browser.link.open\_newwindow .
+Next, place the mouse cursor over: browser.link.open\_newwindow.override.external ,
+press the right mouse button, and select from the popup menu "Modify".
+You can now edit the value. Set it to 1, and you get new links from external
+apps opened in the same tab.
+
+If you set the variable "browser.link.open\_newwindow" instead, you get this
+behavior not only for external, but also for all links which otherwise would
+be opened in new tabs or new windows. The possible values of both variables
+are:
+\newline \hspace*{1cm} Value = 1: open in the current window and tab
+\newline \hspace*{1cm} Value = 2: open in the new window
+\newline \hspace*{1cm} Value = 3: (default): open in the new tab, current window
+\end{enumerate}
+
+\section{Troubleshooting}%
+\label{sec:troubleshooting}
+
 You can report potential problems, bugs, and crashes to the \CGG{} website at:
 
 \begin{center}
@@ -23,7 +108,7 @@ are outlined in \ref{cha:when_things_go_wrong} - be sure to read down through
 troubleshooting help is included in other sections of this manual for specific features.
 
 \section{What to Include in Problem Reports}%
-\label{cha:include_in_problem_reports}
+\label{sub:include_in_problem_reports}
 \index{report problem}
 For the best help, if you have a reproducible problem and can provide the following list of materials for analysis, it
 is usually possible to figure out what the problem is and how to fix it. It may be a simple usage or setup mistake or
@@ -38,7 +123,7 @@ Basically we\textbf{ need to see what you see }with the input, output, and sessi
        \item If possible, also provide the rendered output, again using that representative sample.
        \item Save a session file used with that same sample which will contain a lot of setup parameters; the best method to do this is to use the \texttt{File $\rightarrow$ Export Project}$\dots$ with the Copy option. That way all of the files will be in 1 location and easily loaded onto any other computer.
        \item To make sure that the same rendering setup is used, it may be necessary to send an additional session file at the definition point just before rendering starts.
-       \item Include the Operating System name and version number and version of Cin that you are running. You can find the date and time \textit{built} in the \texttt{Settings $\rightarrow$ Preferences, About} tab, bottom left corner.
+       \item Include the Operating System name and version number and version of \CGG{} that you are running. You can find the date and time \textit{built} in the \texttt{Settings $\rightarrow$ Preferences, About} tab, bottom left corner.
 \end{itemize} 
 
 It is better to upload any files to a drop site as some of them can be quite large.
@@ -103,7 +188,7 @@ to try before abandoning your session.
         \item If your computer or the program crashed, you can use the \textit{File} pulldown choice
 of \textit{Load backup} to get back to the last automatically saved session. It will most
 likely not include the last few operations that were done though.  But if you forgot to 
-Load backup when you restarted Cinelerra, you have a second chance to use \texttt{File $\rightarrow$ Load} and
+Load backup when you restarted ,\CGG{} you have a second chance to use \texttt{File $\rightarrow$ Load} and
 select \texttt{\$HOME/.bcast5/backup .prev} as long as you only loaded a different file and have
 performed no editing operations.
          \item If you accidentally destroyed your current project by a Load with 
@@ -138,7 +223,7 @@ On the \textit{File} pulldown, there is a \textit{Dumps} option with a submenu o
 the text results will be shown in that window.
 
 \begin{itemize}[nosep]
-\item \textit{Dump EDL} \index{EDL dump} will display your current EDL state on the screen in the window from where you started Cin. This can be useful to see information concerning a specific edit or a file path.
+\item \textit{Dump EDL} \index{EDL dump} will display your current EDL state on the screen in the window from where you started .\CGG{} This can be useful to see information concerning a specific edit or a file path.
 \item \textit{Dump Plugins} \index{plugins!dumps} will show the names of the currently loaded plugins.
 \item \textit{Dump Assets} \index{asset!dump} displays the media assets that you have loaded and various pertinent details on each, such as samplerate, width, and height.
 \item \textit{Dump Undo} \index{undo dump} will dump the last 32 edits on the undo stack exactly as kept, which can be useful if you are looking to see how far back in the undo to go to get to a specific spot.
@@ -168,7 +253,7 @@ This indicates that there is something wrong with the audio. Some reasons for th
        \item You simply stopped playing in \CGG{} while the audio is in progress.
        \item Running on a computer where there is no sound card.
        \item Incorrect setup of the audio parameters in the \texttt{Settings $\rightarrow$ Preferences, Playback} tab.
-       \item Your sound system is already in use by another program, like when playing \textit{tunes} outside Cin.
+       \item Your sound system is already in use by another program, like when playing \textit{tunes} outside \CGG{}.
 \end{itemize}
 \bigskip
 
@@ -183,8 +268,8 @@ There can be various reasons that \CGG{} does not come up. Some of the recent re
 \medskip
 
 \begin{itemize}[nosep]
-       \item Cin doesn't come up in Debian with compiz window manager running. Workaround is to use a different window manager or bring up cin first and then compiz. There is also a report that Compiz leads to single frame problems after a certain amount of time in the case where you switch to fullscreen mode and than back to normal node -- cin stops working and so you will have to restart cin.
-       \item When a library goes from one version to a later version, sometimes a pre-built Cin binary will fail because it was created at a different version than the one the user has on their computer. This seems to happen more frequently on Arch distros because Arch has continuous releases and is usually kept up to date. An example of the error message you might see in your startup window would be:\\
+       \item \CGG{} doesn't come up in Debian with compiz window manager running. Workaround is to use a different window manager or bring up cin first and then compiz. There is also a report that Compiz leads to single frame problems after a certain amount of time in the case where you switch to fullscreen mode and than back to normal node -- cin stops working and so you will have to restart cin.
+       \item When a library goes from one version to a later version, sometimes a pre-built \CGG{} binary will fail because it was created at a different version than the one the user has on their computer. This seems to happen more frequently on Arch distros because Arch has continuous releases and is usually kept up to date. An example of the error message you might see in your startup window would be:\\
        \texttt{cin: error while loading shared libraries: libvpx.so.5: \\
        cannot open shared object file: No such file}
 \end{itemize}
@@ -193,7 +278,7 @@ There can be various reasons that \CGG{} does not come up. Some of the recent re
 You can usually install the required library to fix the problem. A temporary fix may be to create a symlink but this must be done with extreme caution as it may create an unstable condition. A better workaround is to use a tarball to install the software instead of the package build until the libraries are in sync between the build and your Operating System install.
 \bigskip
 
-\textit{ Loading a very large number of media files, for example 500 clips, crashes \CGG{} with messages similar to the following that are displayed in the window from where you started Cin:}
+\textit{ Loading a very large number of media files, for example 500 clips, crashes \CGG{} with messages similar to the following that are displayed in the window from where you started \CGG{}:}
 
 \begin{lstlisting}[numbers=none,xleftmargin=10mm]
 
@@ -227,7 +312,7 @@ main000();
 In the mask window, check the box \textit{Disable OpenGL masking} to use software instead of OpenGL.
 
 \section{Menu Bar Shell Commands}%
-\label{menu_bar_shell_commands}
+\label{sec:menu_bar_shell_commands}
 \index{shell commands}
 
 In order to provide some types of help, the Menu Bar Shell Commands are available for customization purposes (figure~\ref{fig:trouble-img001}).