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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
|
<?xml version="1.0" encoding="UTF-8" ?>
<sect1 id="dcop-interface">
<sect1info>
<title
>Funciones &DCOP;</title>
<authorgroup>
<author
><firstname
></firstname
> <surname
></surname
> <affiliation
><address
> <email
></email>
</address
></affiliation>
</author>
<othercredit role="translator"
><firstname
>Juan Manuel</firstname
> <surname
>García Molina</surname
> <affiliation
><address
><email
>[email protected]</email
></address
></affiliation
><contrib
>Traductor</contrib
></othercredit
>
</authorgroup>
</sect1info>
<title
>Funciones &DCOP;</title>
<para
>&DCOP; se puede llamar de varias formas desde &kommander;. El primero, es el método de la consola </para>
<para
>dcop kmdr-executor-@pid KommanderIf changeWidgetText miWidget <quote
>nuevo texto</quote
> </para>
<para
>Asume que está dentro de un archivo de &kommander; y que tiene acceso al especial @pid, que contiene el id. del proceso. De hecho, es más fácil reemplazar <quote
>kmdr-executor-@pid</quote
> por @dcopid. Sin embargo, puede usar esta sintaxis (obviamente, sin los especiales) desde la línea de órdenes o desde cualquier guión exteno para alterar la ventana de &kommander;. </para>
<para
>Debido a que &kommander; no tiene un analizador completo en su estado alfa, si quiere usar el &DCOP; interno mucho más rápido para la ventana de otra aplicación (&DCOP; en consola es muy lento) es más complicado porque debe dar mucha información, entre la que se incluye un prototipo para la llamada. La llamada de lo de arriba sería así: </para>
<para
>@dcop(@dcopid, KommanderIf, <quote
>enableWidget(QString, bool)</quote
>, Widget, true) </para>
<para
>En el momento de escribir este manual, debería evitar anidar llamadas &DCOP; dentro de las estructuras de lenguajes de guiones (como <application
>bash</application
>), lo que significa que debería usar métodos de llamada desde consola. <emphasis
>Si usa &DCOP; interno, todos los especiales de &kommander; se ejecutarán primero y luego se ejecutará el guión.</emphasis
> </para>
<para
>Hay una forma simplificada de usar &DCOP; desde dentro de &kommander;, usando la sintaxis del objeto. Digamos que quiere cambiar el texto de un widget que se llama @EditLine1. Tendría esta pinta: </para>
<para
>@EditLine1.changeWidgetText(Texto nuevo) </para>
<para
>Como puede ver, la sintaxis es muy sencilla, así como visualmente consistente con los grupos de funciones. Todas las referencias &DCOP; de aquí usarán la nueva sintaxis del objeto que se mostró arriba. <emphasis
>Tenga en cuenta que si está referenciando un widget usando &DCOP; desde otra ventana o desde otra aplicación, el primer parámetro será siempre el nombre del widget. Todas las funciones que se muestran aquí comienzan en el segundo parámetro.</emphasis
> </para>
<sect2 id="dcop-globals">
<title
>&DCOP; para variables globales</title>
<variablelist>
<varlistentry>
<term
>global(QString nombreVariable)</term>
<listitem>
<para
>Devuelve el valor de la variable global indicada. Cuando un guión se ejecuta desde la ventana de &kommander; cualquier variable (no global) definida en el guión dejará de existir una vez completado el guión y, por tanto, no estará disponible para otros procesos de guiones ni en nuevos ejemplares del proceso llamante. El <quote
>ámbito</quote
> global de la variable significa que existirá para cualquier proceso de la ventana hasta que se cierre la misma. Puede cambiar estas variables en cualquier momento con una nueva llamada a <function
>@setGlobal</function
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setGlobal(QString nombreVariable, QString valor)</term>
<listitem>
<para
>Crea una variable global en el proceso de la ventana y le asigna un valor. Este valor se puede recuperar o volver a definir con global(QString nombreVariable). </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="dcop-all">
<title
>&DCOP; para todos los widgets</title>
<variablelist>
<varlistentry>
<term
>changeWidgetText(QString text)</term>
<listitem>
<para
>Debería cambiar el nombre por setWidgetText y probablemente este nombre quede obsoleto. Elimina el texto que se muestra en el widget y lo reemplaza con el texto que se suministra. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>enableWidget(bool enable)</term>
<listitem>
<para
>Activa o desactiva el widget. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>associatedText</term>
<listitem>
<para
>Devuelve el texto asociado con el widget especificado. No es el mismo que el texto que se muestra. Sería <quote
>@widgetText</quote
> o el texto y/o el guión que se use para que llegue el valor que se muestra. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setAssociatedText(QString text)</term>
<listitem>
<para
>Define la cadena predefinida de texto de &kommander;. Típicamente se define como <quote
>@widgetText</quote
> para mostrar lo que se introduzca en el widget. Posiblemente no lo necesite, pero ahí está por si acaso. Se aplica a todos los widgets que tengan datos. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="dcop-box">
<title
>&DCOP; para widgets de listas de selección y de listas de selección múltiple</title>
<variablelist>
<varlistentry>
<term
>addListItem(QString item, int index)</term>
<listitem>
<para
>Añade un elemento a un widget de lista de selección en el índice (index) especificado. El índice de la lista comienza en el cero. Para añadirlo al final de la lista, use -1. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addListItems(QStringList items, int index)</term>
<listitem>
<para
>Añade una lista de cadenas de una vez. La lista debería delimitarla por <acronym
>EOL</acronym
> (\n - saltos de línea). Es tan hábil que puede usar bash para derivar la lista de forma bastante sencilla. Por ejemplo, usando @exec(ls -l ~/projects | grep kmdr) para que los elementos que proporcione conformen un listado de los archivos de &kommander; de la carpeta projects. El índice de la lista comienza en el cero. Para añadirlo al final de la lista, use -1. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addUniqueItem(QString item)</term>
<listitem>
<para
>addUniqueItem añade un elemento (item) al final de la lista sólo si es único. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>clearList</term>
<listitem>
<para
>Elimina todos los elementos. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>removeListItem(int index)</term>
<listitem>
<para
>Elimina el elemento que hay en el índice (index) indicado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>item(int index)</term>
<listitem>
<para
>Devuelve el texto del elemento en el index (índice) especificado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setCurrentListItem(int index)</term>
<listitem>
<para
>Define el elemento actual (o seleccionado) con el index (índice) especificado. Se aplica a widgets de lista y de lista de selección múltiple. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="dcop-button">
<title
>&DCOP; para widgets de casilla de verificación y botones de radio</title>
<variablelist>
<varlistentry>
<term
>setChecked(QString widgetName, bool checked)</term>
<listitem>
<para
>Marca/quita la marca de widgets de casilla de verificación y botones de radio. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="dcop-tab">
<title
>&DCOP; para widgets de solapa</title>
<variablelist>
<varlistentry>
<term
>setCurrentTab(QString widgetName, int index)</term>
<listitem>
<para
>Selecciona la solapa por index (índice) para widgets de solapa. El índice comienza en el 0. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
|