/usr/share/doc/gnat-gps/html/Adding-contextual-menus.html is in gnat-gps-doc 5.0-16.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 2002-2010 AdaCore.
This document is free; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This document is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, see http://www.gnu.org/licenses/.
A copy of the license is included in the section entitled
"GNU General Public License". -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using the GNAT Programming Studio: Adding contextual menus</title>
<meta name="description" content="Using the GNAT Programming Studio: Adding contextual menus">
<meta name="keywords" content="Using the GNAT Programming Studio: Adding contextual menus">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index-table.html#Index-table" rel="index" title="Index table">
<link href="Customizing-through-XML-and-Python-files.html#Customizing-through-XML-and-Python-files" rel="up" title="Customizing through XML and Python files">
<link href="Adding-tool-bar-buttons.html#Adding-tool-bar-buttons" rel="next" title="Adding tool bar buttons">
<link href="Adding-new-menus.html#Adding-new-menus" rel="previous" title="Adding new menus">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
pre.smallexample {background-color:rgb(240,240,240);
font-family: courier new,courier,fixed;
font-size: 14px;
margin: 0px 40px 0px 40px;
border-width: 1px 2px 2px 1px;
border-top-style: dotted;
border-left-style: dotted;
border-right-style: solid;
border-bottom-style: solid;
border-color: black;}
code {color:black;
font-family: courier new,courier,fixed;
font-size: 14px;}
body {font-family: arial,helvetica,sans-serif;
font-size: 16px;
max-width: 800px;
text-align: justify}
samp {font-family: courier new,courier,fixed;
font-size: 14px}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Adding-contextual-menus"></a>
<div class="header">
<p>
Next: <a href="Adding-tool-bar-buttons.html#Adding-tool-bar-buttons" accesskey="n" rel="next">Adding tool bar buttons</a>, Previous: <a href="Adding-new-menus.html#Adding-new-menus" accesskey="p" rel="previous">Adding new menus</a>, Up: <a href="Customizing-through-XML-and-Python-files.html#Customizing-through-XML-and-Python-files" accesskey="u" rel="up">Customizing through XML and Python files</a> [<a href="Index-table.html#Index-table" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Adding-contextual-menus-1"></a>
<h4 class="subsection">16.5.6 Adding contextual menus</h4>
<a name="index-_003ccontextual_003e"></a>
<p>The actions can also be used to contribute new entries in the contextual
menus everywhere in GPS. These menus are displayed when the user presses
the right mouse button, and should only show actions relevant to the current
context.
</p>
<p>Such contributions are done through the <code><contextual></code> tag, which takes
the following attributes:
</p>
<dl compact="compact">
<dt><code>"action" (mandatory)</code></dt>
<dd><p>Name of the action to execute, and must be defined elsewhere in one of the
customization files.
</p>
<p>If this attribute is set to an empty string, a separator will be inserted
in the contextual menu instead. If you specify a reference item with one of
the "before" or "after" attribute, the separator will be visible only when
the reference item is visible.
</p>
</dd>
<dt><code>"before" (optional, default="")</code></dt>
<dd><p>If it is specified, this attribute should be the name of another contextual,
before which the new menu should appear. The name of predefined contextual
menus can be found by looking at the output of "Contextual.list" in the shell
console. The name of the contextual menus you define yourself is the value of
the <code><title></code> child.
</p>
<p>There is no guarantee that the new menu will appear just before the referenced
menu. In particular, it won’t be the case if the new menu is created before
the reference menu was created, or if another later contextual menu indicates
that it must be displayed before the same reference item.
</p>
</dd>
<dt><code>"after" (optional, default="")</code></dt>
<dd><p>Same as "before", except it indicates the new menu should appear after the
reference item.
</p>
<p>If both "after" and "before" are specified, only the latter is taken into
account.
</p>
</dd>
</dl>
<p>It accepts one child tag, <code><Title></code> which specifies the name of the
menu entry. If this child is not specified, the menu entry will use the name
of the action itself. The title is in fact the full path to the new menu entry.
Therefore, you can create submenus by using a title of the form
"Parent1/Parent2/Menu".
</p>
<p>Special characters can be used in the title, and will be automatically
expended based on the current context. These are exactly the ones described
in the section for macros arguments, See <a href="Macro-arguments.html#Macro-arguments">Macro arguments</a>.
</p>
<p>The new contextual menu will only be shown if the filters associated with the
action match the current context.
</p>
<p>For instance, the following example inserts a new contextual menu which prints
the name of the current file in the GPS console. This contextual menu is only
displayed in source editors. This contextual menu entry is followed by a
separator line, visible when the menu is visible
</p>
<div class="smallexample">
<pre class="smallexample"><?xml version="1.0" ?>
<print>
<action name="print current file name" >
<filter module="Source_Editor" />
<shell>echo %f</shell>
</action>
<contextual action="print current file name" >
<Title>Print Current File Name</Title>
</contextual>
<contextual action="" after="Print Current File Name" />
</print>
</pre></div>
<hr>
<div class="header">
<p>
Next: <a href="Adding-tool-bar-buttons.html#Adding-tool-bar-buttons" accesskey="n" rel="next">Adding tool bar buttons</a>, Previous: <a href="Adding-new-menus.html#Adding-new-menus" accesskey="p" rel="previous">Adding new menus</a>, Up: <a href="Customizing-through-XML-and-Python-files.html#Customizing-through-XML-and-Python-files" accesskey="u" rel="up">Customizing through XML and Python files</a> [<a href="Index-table.html#Index-table" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|