1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 20:38:08 +01:00

cleaning the house today

This commit is contained in:
kojima
2002-02-15 21:34:46 +00:00
parent 5873385d32
commit 5db8b5660f
8 changed files with 605 additions and 14 deletions

View File

@@ -235,8 +235,8 @@ Subject: Re: El paquete WindowMaker funciona bien en Alpha?
> por favor probar esto? Debería el parámetro ser pasado al compilar > por favor probar esto? Debería el parámetro ser pasado al compilar
> en Alpha? > en Alpha?
Descargo de responsabilidad: alphas bajo mi mando nunca han ejecutado X y are Descargo de responsabilidad: alphas bajo mi mando nunca han ejecutado X
least likely to suddenly start running it anytime soon. y es poco probable de que las ejecute repentinamente en algún momento.
Alpha suele tener alguna ridícula poca cantidad de memoria compartida Alpha suele tener alguna ridícula poca cantidad de memoria compartida
configurada. configurada.

25
NEWS
View File

@@ -92,10 +92,27 @@ that this happened.
New dock option New dock option
--------------- ---------------
Copy/paste launch in dock. For example, put Copy/paste launch in dock.
netscape %s in the Docked icon for Netscape, ==========================
select an url somewhere and then middle-click the icon.
The command will be launched with the "pasted" string. For example, put netscape %s in the Docked icon for Netscape, select an url
somewhere and then middle-click the icon. The command will be launched with
the "pasted" string.
Xinerama Support
================
Supported Xinerama features:
- Normal maximization of windows will maximize to only one of the screens,
the one where the cursor pointer is.
- Full Maximize command in window menu
- Place dialogs in the middle of the head where the pointer is
- Try to place windows inside one head in non-manual placement modes
Less dependancies Less dependancies

370
README.es Normal file
View File

@@ -0,0 +1,370 @@
GNU Window Maker
X11 Window Manager
<http://windowmaker.org>
<ftp://ftp.windowmaker.org>
por
Alfredo K. Kojima
Dan Pascu
]d
Web/FTP Master
Phillip Smith
Felicitaciones! A adquirido un dispositivo excelentísimo
que le proporcionará miles de años de uso sin problemas
,si no fuera porque indudablemente lo destruirá a través de alguna
maniobra estúpida típica de consumidor. Por eso le pedimos
por EL AMOR DE DIOS LEA ESTE MANUAL DEL PROPIETARIO CUIDADOSAMENTE
ANTES DE DESEMPAQUETAR EL DISPOSITIVO. ¿YA LO DESEMPAQUETÓ, NO?
DESEMPAQUETELO Y ENCHÚFELO Y ENCIÉNDALO Y DEJE DE TOQUETEAR LAS PERILLAS,
Y AHORA SUS CHICOS, EL MISMO CHICO QUE UNA VEZ METIÓ UNA SALCHICHA EN SU
VIDEOCASETERA Y DEFINIÓ UN "AVANCE RÁPIDO", ¿ESTE CHICO TAMBIÉN ESTÁ
TOQUETEANDO LAS PERILLAS, CIERTO? ¿Y RECIEN AHORA ESTÁ COMENZANDO A LEER
LAS INSTRUCCIONES, CIERTO? PODEMOS TAMBIÉN ROMPER ESTOS DISPOSITIVOS
EN LA FÁBRICA ANTES DE DESPACHÁRLOS, SABIA ESO?
-- Dave Barry, "Lea Esto Primero!"
Descripción
===========
Window Maker es el gestor de ventanas GNU para el Sistema de Ventanas X. Fue
diseñado para emular la apariencia y funcionalidad de parte del GUI de NEXTSTEP(mr).
Procura ser relativamente rápido y pequeño, rico en características, fácil de configurar
y usar, con una simple y elegante apariencia sacada desde NEXTSTEP(mr).
Window Maker fue diseñado teniendo en mente la integración con GNUstep y por eso
es el gestor de ventanas "oficial". Es también parte del proyecto GNU (www.gnu.org)
. Lea mas sobre GNUstep más adelante en este archivo.
Pistas (información dada por las aplicaciones para integrarse bien con el gestor de
ventanas) para Motif(tm), OPEN LOOK(tm), KDE y GNOME también son soportados.
Entonces puede reemplazar cualquiera de los gestores de ventana para estos entornos
con Window Maker manteniendo la mayoría, si no todo, de la funcionalidad del
gestor de ventanas nativo.
Window Maker antes se llamaba WindowMaker.
Window Maker no tiene relación con Windowmaker, el software para
hacer ventanas y puertas.
Documentación
=============
Lea antes de preguntar.
* Los archivos README distribuidos por todas partes del árbol de fuentes
contienen información relacionada al contenido en los directorios.
* INSTALL tiene instrucciones de instalación y algunos consejos cuando tenga
algún problema. Significa que debería leerlo antes de la instalación.
No fue escrito solo para ocupar espacio en el paquete...
* FAQ: Preguntas Frecuentes. LEALO!!! FAQ.I18N es para
preguntas relacionadas con la internacionalización.
* NEWS: lista los cambios visibles por el usuario desde la versión anterior.
Léalo si está actualizando.
* MIRRORS: algunos lugares alternativos donde puede obtener Window Maker,
incluyendo paquetes de Window Maker específicos para ciertas plataformas.
* BUGFORM: uselo para enviar reportes de errores. Por favor uselo.
* ChangeLog: ¿que cambió desde la versión anterior?
* BUGS: lista de errores conocidos.
*** Tutorial
Hay un tutorial mantenido por Georges Tarbouriech en:
http://www.linuxfocus.org/~georges.t/
*** Guía del Usuario
La Guía del Usuario de Window Maker puede ser bajada desde el ftp oficial
o por sitios web.
Puede también ser vista en formato HTML en:
http://people.delphi.com/crc3419/WMUserGuide/index.htm
La Guía del Usuario explica como usar Window Maker, los archivos de configuración
y opciones.
*** man pages
Tipee "man wmaker" en el prompt del shell para obtener ayuda general sobre Window Maker.
Directorios y Archivos en el Árbol de Fuentes
=============================================
* Install es un script para configurar y compilar Window Maker de una forma
fácil (no es que la forma normal sea difícil, pero...).
* AUTORES: los créditos
* TODO: planes para el futuro.
* contrib/ tiene algunos parches aportados que no están soportados por Window Maker
porque entran en conflicto con la filosofía de diseño de los desarrolladores o por
alguna otra razón.
* util/ tiene varios programas utilitarios.
* WPrefs.app/ es el programa de configuración.
* src/wconfig.h posee opciones de compilación que puede cambiar para
seleccionar algunas opciones/caracteristicas y otras cosas.
* WINGs/ biblioteca widget para imitación de NEXTSTEP.
* wrlib/ biblioteca de procesamiento de imagen.
* po/ posee catálogos de mensajes que son las versiones traducidas de los mensajes
mostrados por Window Maker.
* docklib-x.x.tar.gz es una biblioteca para escribir dockapps.
SOCORRO!!!
==========
Hay una lista de correo para discutir sobre Window Maker en
wm-user@windowmaker.org. Para suscribirse, envie un mensaje que contenga:
subscribe
en el tema del mensaje a wm-user-request@windowmaker.org
Si tiene algun problema, pregunte aquí (después de leer los docs, por supuesto). Es
más probable que las personas de la lista sepan contestar sus preguntas
que nosotros. Para reportes de errores use el BUGFORM.
Si tiene un problema con una versión precompilada de Window Maker
(rpm, deb etc), primero pregunte a la persona que hizo el paquete.
NOTA IMPORTANTE: cuando pida ayuda (en la lista de correo o a los desarrolladores,
directamente) *siempre* envie información sobre el sistema que está usando. Puede
usar la sección de información del sistema al final del BUGFORM como una guía.
Otra cosa: por favor no envie correo HTML.
También hay un canal de IRC #windowmaker en openprojects. Únase aquí,
conecte su cliente de irc a irc.openprojects.net, irc.linux.com o algún otro
servidor de esa red.
GNUstep
=======
GNUStep es un completo sistema de desarrollo orientado a objetos, basado en la
especificación OpenStep liberada por NeXT(tm) (ahora Apple(tm) y Sun(tm)). Ello
proveerá todo lo que se necesita para producir aplicaciones multiplataforma,
orientadas a objetos, gráficas (y no gráficas); suministrando dentro de otras cosas,
bibliotecas base del sistema, una estructura de alto nivel para aplicaciones GUI que
usan un modelo de imagenes de tipo Display PostScript(tm) (DGS), objetos para acceso
a bases de datos relacionales, objetos distribuidos y un entorno de desarrollo gráfico,
con herramientas como un modelador de interfaces, un sistema para administración del
proyecto (central de proyecto) y otras herramientas.
El sistema de desarrollo de GNUStep será usado para crear un entorno de usuario,
con todo lo necesario para una completa interface gráfica de usuario, tal como
un visualizador de archivos, editores de texto y otras aplicaciones. Note que el
entorno de usuario (o "entorno de escritorio") es solo un pequeña parte de todo
el proyecto GNUStep y por lo tanto no "compite" con otros proyectos como KDE o GNOME,
simplemente porque son cosas completamente diferentes.
Para más información sobre el proyecto GNUStep, visite: http://www.gnustep.org y
http://gnustep.current.nu
Ejecutando multiples instancias de Window Maker
===============================================
No es una buena idea eejcutar más de una instancia de Window Maker desde
el mismo usuario (ya que wmaker usará los mismos archivos de configuración)
al mismo tiempo. Podría obtener un comportamiento inesperado cuando Window
Maker actualiza sus archivos de configuración.
Si de verdad desea hacer esto, intente ejecutar Window Maker con la opción
de linea de comando --static ya que así no actualizará o cambiará ninguno de los
archivos de configuración.
Soporte para Sonido
===================
El sonido es soportado por los sistemas Linux y FreeBSD con el uso de
un módulo distribuido separadamente llamado WSoundServer. Hay también
una herramienta de configuracion gráfica para definir sus sonidos llamada
WSoundPref.
Puede bajar esto en:
http://shadowmere.student.utwente.nl/
Note que debe compilar Window Maker con el parámetro --enable-sound
y definir la opción DisableSound a NO.
Soporte para OpenL**k
=====================
Calculo que muchos usuarios, principalmente del mundo académico,
tienen que usar aplicaciones escritas usando los toolkits OpenL**k,
así que tener soporte para estas aplicaciones debe ser de algún uso.
Para activarlo, use --enable-openlook al hacer el configure. Note que
no todo está implementado.
Las cosas implementadas incluyen consejos de adorno y el push-pin. Las cosas
no implementadas incluyen _SUN_WINDOW_STATE (la cosa compuesta que lleva el estado),
cosas que interesan sobre arrastrar y soltar, cabecera (no estoy seguro de que sea así)
y cadenas footer.
Por favor hágame saber si algo no funciona. Si la característica ya está implimentada,
pero no funciona por un error, intentaré arreglarlo. Si esta es una característica no
implementada y menciona que es importante (obs: no solo superficial), consideraré
implementarlo.
El estado "out" del pushpin es emular un botón presionado. Solo cliquee
en el botón para hacer que se libere, lo cuál corresponde al estado
pinned-in del pushpin. Si pulsa otra vez en el boton liberado, servirá de
botón normal de cerrado: cerrará la ventana.
Ajuste de Rendimiento.
=====================
Si quiere disminuir el uso de memoria por parte de Window Maker y mejorar el
rendimiento, manteniendo una linda apariencia y buena funcionalidad, siga los
items de abajo:
- use texturas sólidas para todo, principalmente barras de título y menúes.
Si quiere un escritorio de aspecto lindo, use el estilo Tradicional.
- Apague NewStyle y Superfluous
- No una muchos atajos al menú y mantenga solo los items esenciales en el menú.
- Active DisableClip
- edite wconfig.h y desactive el NUMLOCK_HACK y lo mismo con las características
que no use (tenga en mente que algunos de los #defines podrían no funcionar,
ya que ellos no están completamente soportados). Asegúrese de mantener siempre
Numlock y ScrollLock apagados.
- Active DisableAnimations. Puede también #undefine ANIMATIONS en wconfig.h
- quite las entradas por defecto IconPath y PixmapPath para contener solo las
rutas que en verdad tiene en su sistema.
- no use imágenes grandes en el fondo raíz.
- quite el soporte para los formatos de imagen que no use.
- para reducir el uso de la memoria, desactive el caché de ícono, definiendo
la variable de entorno RIMAGE_CACHE a 0. Si quiere aumentar el rendimiento
a expensas del uso de la memoria, defina este valor a un valor igual al
número de íconos distintos que use.
Control del Mouse por Teclado
=============================
Muchas personas preguntan sobre agregar control por teclado al mouse, como
en fvwm, pero Window Maker no tendrá tal característica. La extensión XKB
soporta simulación de mouse desde el teclado, de una manera mucho más poderosa
que cualquier otra simulación hecha por un administrador de ventanas.
Para activarlo, presione la combinación de teclas Control+Shift+NumLock o
Shift+NumLock. Debiera escuchar el beep del parlante. Para desactivarlo,
haga lo mismo.
Para controlar el mouse el teclado numérico se usa así:
- 4 (flecha izquierda), 7 (Home), 8 (flecha arriba), 9 (PgUP), 6 (flecha derecha),
3 (PgDn), 2 (flecha abajo) y 1 (Fin) mueve el mouse a la correspondiente
dirección;
- sosteniendo una de las teclas de arriba y luego sosteniendo la tecla 5 moverá
el puntero más rápido;
- / seleccionará el primer botón del mouse (botón izquierdo);
- * seleccionará el segundo botón del mouse (botón del medio);
- - seleccionará el tercer botón del mouse (botón derecho);
- 5 hará un click con el botón actualmente seleccionado del mouse;
- + hará un doble click con el botón actualmente seleccionado;
- 0 (Ins) cliqueará y mantendrá el botón seleccionado actualmente;
- . (Del) liberará el botón seleccionado actualmente que fue anteriormente
cliqueado con la tecla 0 (Ins).
Los valores anteriores de las teclas funcionarán en un servidor X XFree86 3.2
(X11R6.1) pero su alcance puede variar.
Como hacer un gdb backtrace
===========================
Backtraces pueden ayudarnos a arreglar errores que hicieron que Window Maker falle.
Si encuentra un bug que hace fallar a Window Maker, por favor envie un backtrace con su
reporte de error.
Para hacer un backtrace útil, necesita un archivo core con información de depuración
producida por Window Maker cuando falló. Debería haber sido instalado sin stripping también.
Para compilar wmaker con información de depuración:
./configure
make CFLAGS=-g
Si obtiene el cuadro de diálogo que le dice que wmaker falló y le
pregunta que hacer, respóndale "Abortar y dejar un archivo core"
script
cd src
gdb .libs/wmaker path_to_the_core_file
Luego, en el prompt gdb escriba "bt". Salga de gdb escribiendo "quit"
y luego, en el prompt del shell, scriba "exit"
El archivo llamado typescript contendrá el backtrace.
Derechos de Autor y Descargo de Responsabilidad
===============================================
Window Maker está registrado por Alfredo K. Kojima y está licensiado por la
Licensia Pública General GNU. Lea el archivo COPYING para leer la licensia
completa.
Los íconos que son distribuidos con este programa y fueron hechos por Marco
van Hylckama Vlieg, están licenciados por la Licencia Pública General GNU.
Lea el archivo COPYING para leer la licencia completa.
Los íconos listados en COPYING.WTFPL y son distribuidos en este programa
fueron hechos por Banlu Kemiyatorn (]d), están licenciados por la
"do What The Fuck you want to Public License". Lea el archivo COPYING.WTFPL
para leer la licencia completa.
NeXT, OpenStep y NEXTSTEP son marcas registradas de NeXT Computer, Inc.
Todas las otras marcas registradas son propiedad de sus respectivos dueños.
Los autores se reservan el derecho de hacer cambios en el software sin previo
aviso.
Autores
=======
Alfredo K. Kojima <kojima@windowmaker.org>
Dan Pascu <dan@windowmaker.org>
]d <id@windowmaker.org>
Por favor no nos haga preguntas antes de leer la documentación (especialmente
la FAQ, este archivo y los archivos INSTALL) y sobre cosas "cool" que ve en
las capturas de pantalla del escritorio de las personas.
El archivo AUTHORS contiene una lista de las personas que han contribuido
con el proyecto. El nombre de las personas que han ayudado con localization
(traducción) se puede encontrar en po/README y Window Maker/README
Si tiene algún comentario, arreglos y reportes de errores (complete BUGFORMs)
y enviémelos a developers@windowmaker.org
traducido por Efraín Maximiliano Palermo <max_drake2001@yahoo.com.ar>

View File

@@ -21,6 +21,9 @@
*/ */
#include "config.h" /* for HAVE_XCONVERTCASE */
#include "WPrefs.h" #include "WPrefs.h"
#include <ctype.h> #include <ctype.h>
@@ -120,6 +123,121 @@ static char *keyOptions[] = {
#ifndef HAVE_XCONVERTCASE
/* from Xlib */
static void
XConvertCase(sym, lower, upper)
register KeySym sym;
KeySym *lower;
KeySym *upper;
{
*lower = sym;
*upper = sym;
switch(sym >> 8) {
case 0: /* Latin 1 */
if ((sym >= XK_A) && (sym <= XK_Z))
*lower += (XK_a - XK_A);
else if ((sym >= XK_a) && (sym <= XK_z))
*upper -= (XK_a - XK_A);
else if ((sym >= XK_Agrave) && (sym <= XK_Odiaeresis))
*lower += (XK_agrave - XK_Agrave);
else if ((sym >= XK_agrave) && (sym <= XK_odiaeresis))
*upper -= (XK_agrave - XK_Agrave);
else if ((sym >= XK_Ooblique) && (sym <= XK_Thorn))
*lower += (XK_oslash - XK_Ooblique);
else if ((sym >= XK_oslash) && (sym <= XK_thorn))
*upper -= (XK_oslash - XK_Ooblique);
break;
case 1: /* Latin 2 */
/* Assume the KeySym is a legal value (ignore discontinuities) */
if (sym == XK_Aogonek)
*lower = XK_aogonek;
else if (sym >= XK_Lstroke && sym <= XK_Sacute)
*lower += (XK_lstroke - XK_Lstroke);
else if (sym >= XK_Scaron && sym <= XK_Zacute)
*lower += (XK_scaron - XK_Scaron);
else if (sym >= XK_Zcaron && sym <= XK_Zabovedot)
*lower += (XK_zcaron - XK_Zcaron);
else if (sym == XK_aogonek)
*upper = XK_Aogonek;
else if (sym >= XK_lstroke && sym <= XK_sacute)
*upper -= (XK_lstroke - XK_Lstroke);
else if (sym >= XK_scaron && sym <= XK_zacute)
*upper -= (XK_scaron - XK_Scaron);
else if (sym >= XK_zcaron && sym <= XK_zabovedot)
*upper -= (XK_zcaron - XK_Zcaron);
else if (sym >= XK_Racute && sym <= XK_Tcedilla)
*lower += (XK_racute - XK_Racute);
else if (sym >= XK_racute && sym <= XK_tcedilla)
*upper -= (XK_racute - XK_Racute);
break;
case 2: /* Latin 3 */
/* Assume the KeySym is a legal value (ignore discontinuities) */
if (sym >= XK_Hstroke && sym <= XK_Hcircumflex)
*lower += (XK_hstroke - XK_Hstroke);
else if (sym >= XK_Gbreve && sym <= XK_Jcircumflex)
*lower += (XK_gbreve - XK_Gbreve);
else if (sym >= XK_hstroke && sym <= XK_hcircumflex)
*upper -= (XK_hstroke - XK_Hstroke);
else if (sym >= XK_gbreve && sym <= XK_jcircumflex)
*upper -= (XK_gbreve - XK_Gbreve);
else if (sym >= XK_Cabovedot && sym <= XK_Scircumflex)
*lower += (XK_cabovedot - XK_Cabovedot);
else if (sym >= XK_cabovedot && sym <= XK_scircumflex)
*upper -= (XK_cabovedot - XK_Cabovedot);
break;
case 3: /* Latin 4 */
/* Assume the KeySym is a legal value (ignore discontinuities) */
if (sym >= XK_Rcedilla && sym <= XK_Tslash)
*lower += (XK_rcedilla - XK_Rcedilla);
else if (sym >= XK_rcedilla && sym <= XK_tslash)
*upper -= (XK_rcedilla - XK_Rcedilla);
else if (sym == XK_ENG)
*lower = XK_eng;
else if (sym == XK_eng)
*upper = XK_ENG;
else if (sym >= XK_Amacron && sym <= XK_Umacron)
*lower += (XK_amacron - XK_Amacron);
else if (sym >= XK_amacron && sym <= XK_umacron)
*upper -= (XK_amacron - XK_Amacron);
break;
case 6: /* Cyrillic */
/* Assume the KeySym is a legal value (ignore discontinuities) */
if (sym >= XK_Serbian_DJE && sym <= XK_Serbian_DZE)
*lower -= (XK_Serbian_DJE - XK_Serbian_dje);
else if (sym >= XK_Serbian_dje && sym <= XK_Serbian_dze)
*upper += (XK_Serbian_DJE - XK_Serbian_dje);
else if (sym >= XK_Cyrillic_YU && sym <= XK_Cyrillic_HARDSIGN)
*lower -= (XK_Cyrillic_YU - XK_Cyrillic_yu);
else if (sym >= XK_Cyrillic_yu && sym <= XK_Cyrillic_hardsign)
*upper += (XK_Cyrillic_YU - XK_Cyrillic_yu);
break;
case 7: /* Greek */
/* Assume the KeySym is a legal value (ignore discontinuities) */
if (sym >= XK_Greek_ALPHAaccent && sym <= XK_Greek_OMEGAaccent)
*lower += (XK_Greek_alphaaccent - XK_Greek_ALPHAaccent);
else if (sym >= XK_Greek_alphaaccent && sym <= XK_Greek_omegaaccent &&
sym != XK_Greek_iotaaccentdieresis &&
sym != XK_Greek_upsilonaccentdieresis)
*upper -= (XK_Greek_alphaaccent - XK_Greek_ALPHAaccent);
else if (sym >= XK_Greek_ALPHA && sym <= XK_Greek_OMEGA)
*lower += (XK_Greek_alpha - XK_Greek_ALPHA);
else if (sym >= XK_Greek_alpha && sym <= XK_Greek_omega &&
sym != XK_Greek_finalsmallsigma)
*upper -= (XK_Greek_alpha - XK_Greek_ALPHA);
break;
case 0x14: /* Armenian */
if (sym >= XK_Armenian_AYB && sym <= XK_Armenian_fe) {
*lower = sym | 1;
*upper = sym & ~1;
}
break;
}
}
#endif
static char* static char*
captureShortcut(Display *dpy, _Panel *panel) captureShortcut(Display *dpy, _Panel *panel)
{ {
@@ -135,7 +253,8 @@ captureShortcut(Display *dpy, _Panel *panel)
ksym = XKeycodeToKeysym(dpy, ev.xkey.keycode, 0); ksym = XKeycodeToKeysym(dpy, ev.xkey.keycode, 0);
if (!IsModifierKey(ksym)) { if (!IsModifierKey(ksym)) {
XConvertCase(ksym, &lksym, &uksym); XConvertCase(ksym, &lksym, &uksym);
key=XKeysymToString(uksym); key=XKeysymToString(uksym);
panel->capturing = 0; panel->capturing = 0;
break; break;
} }

View File

@@ -83,6 +83,7 @@ typedef struct _Panel {
WMFrame *pipeF; WMFrame *pipeF;
WMTextField *pipeT; WMTextField *pipeT;
WMButton *pipeCacheB;
WMFrame *dpathF; WMFrame *dpathF;
WMTextField *dpathT; WMTextField *dpathT;
@@ -134,6 +135,7 @@ typedef struct {
} external; } external;
struct { struct {
char *command; char *command;
unsigned cached:1;
} pipe; } pipe;
struct { struct {
char *directory; char *directory;
@@ -691,8 +693,8 @@ createPanel(_Panel *p)
/* pipe */ /* pipe */
panel->pipeF = WMCreateFrame(panel->optionsF); panel->pipeF = WMCreateFrame(panel->optionsF);
WMResizeWidget(panel->pipeF, width, 100); WMResizeWidget(panel->pipeF, width, 150);
WMMoveWidget(panel->pipeF, 10, 50); WMMoveWidget(panel->pipeF, 10, 30);
WMSetFrameTitle(panel->pipeF, _("Command")); WMSetFrameTitle(panel->pipeF, _("Command"));
panel->pipeT = WMCreateTextField(panel->pipeF); panel->pipeT = WMCreateTextField(panel->pipeF);
@@ -710,6 +712,14 @@ createPanel(_Panel *p)
WMSetLabelText(label, _("Enter a command that outputs a menu\n" WMSetLabelText(label, _("Enter a command that outputs a menu\n"
"definition to stdout when invoked.")); "definition to stdout when invoked."));
panel->pipeCacheB = WMCreateSwitchButton(panel->pipeF);
WMResizeWidget(panel->pipeCacheB, width - 20, 40);
WMMoveWidget(panel->pipeCacheB, 10, 110);
WMSetButtonText(panel->pipeCacheB,
_("Cache menu contents after opening for\n"
"the first time"));
WMMapSubwidgets(panel->pipeF); WMMapSubwidgets(panel->pipeF);
@@ -983,11 +993,17 @@ parseCommand(WMPropList *item)
/* /*
* dir menu, menu file * dir menu, menu file
* dir WITH * dir WITH
* |pipe (TODO: ||pipe) * |pipe
*/ */
p = parameter; p = parameter;
while (isspace(*p) && *p) p++; while (isspace(*p) && *p) p++;
if (*p == '|') { if (*p == '|') {
if (*(p+1) == '|') {
p++;
data->param.pipe.cached = 0;
} else {
data->param.pipe.cached = 1;
}
data->type = PipeInfo; data->type = PipeInfo;
data->param.pipe.command = wtrimspace(p+1); data->param.pipe.command = wtrimspace(p+1);
} else { } else {
@@ -1226,6 +1242,10 @@ updateMenuItem(_Panel *panel, WEditMenuItem *item, WMWidget *changedWidget)
REPLACE(data->param.pipe.command, REPLACE(data->param.pipe.command,
WMGetTextFieldText(panel->pipeT)); WMGetTextFieldText(panel->pipeT));
} }
if (changedWidget == panel->pipeCacheB) {
data->param.pipe.cached =
WMGetButtonSelected(panel->pipeCacheB);
}
break; break;
case ExternalInfo: case ExternalInfo:
@@ -1290,6 +1310,7 @@ menuItemCloned(WEditMenuDelegate *delegate, WEditMenu *menu,
case PipeInfo: case PipeInfo:
newData->param.pipe.command = DUP(data->param.pipe.command); newData->param.pipe.command = DUP(data->param.pipe.command);
newData->param.pipe.cached = data->param.pipe.cached;
break; break;
case ExternalInfo: case ExternalInfo:
@@ -1415,6 +1436,7 @@ menuItemSelected(WEditMenuDelegate *delegate, WEditMenu *menu,
case PipeInfo: case PipeInfo:
WMSetTextFieldText(panel->pipeT, data->param.pipe.command); WMSetTextFieldText(panel->pipeT, data->param.pipe.command);
WMSetButtonSelected(panel->pipeCacheB, data->param.pipe.cached);
break; break;
case ExternalInfo: case ExternalInfo:
@@ -1682,11 +1704,14 @@ processData(char *title, ItemData *data)
if (!data->param.pipe.command) if (!data->param.pipe.command)
return NULL; return NULL;
WMAddToPLArray(item, pomenu); WMAddToPLArray(item, pomenu);
s1 = wstrconcat("| ", data->param.pipe.command); if (data->param.pipe.cached)
s1 = wstrconcat("| ", data->param.pipe.command);
else
s1 = wstrconcat("|| ", data->param.pipe.command);
WMAddToPLArray(item, WMCreatePLString(s1)); WMAddToPLArray(item, WMCreatePLString(s1));
wfree(s1); wfree(s1);
break; break;
case ExternalInfo: case ExternalInfo:
if (!data->param.external.path) if (!data->param.external.path)
return NULL; return NULL;

View File

@@ -18,7 +18,8 @@ es.po Spanish Alvaro Herrera <alvherre@webhost.cl>
fi.po Finnish Tomi Kajala <tomi@iki.fi> fi.po Finnish Tomi Kajala <tomi@iki.fi>
it.po Italian Michele Campeotto <micampe@f2s.com> it.po Italian Michele Campeotto <micampe@f2s.com>
ru.po Russian Igor P. Roboul <igor@srcso.sochi.su> ru.po Russian Igor P. Roboul <igor@srcso.sochi.su>
de.po German Bernd Eggert <Bernd.Eggert@t-online.de> de.po German Torsten Marek <torsten.marek@vbdnet.de>
Bernd Eggert <Bernd.Eggert@t-online.de>
Guido Scholz <guido.scholz@bayernline.de> Guido Scholz <guido.scholz@bayernline.de>
hu.po Hungarian Horvath Szabolcs <horvathsz@penguinpowered.com> hu.po Hungarian Horvath Szabolcs <horvathsz@penguinpowered.com>
bg.po Bulgarian Slavei Karadjov <slaff@exco.net> bg.po Bulgarian Slavei Karadjov <slaff@exco.net>

58
doc/wcopy.1 Normal file
View File

@@ -0,0 +1,58 @@
.TH wcopy,wpaste 1 04/09/01
.UC 4
.SH NAME
wcopy \- copy stdin to an X11 cut buffer
wpaste \- paste X11 cut buffer to stdout
.SH SYNOPSIS
.B wcopy [ [0-9]... ] [wxcopy's normal args]
.SH DESCRIPTION
\fBwcopy\fP reads from standard input and copies it to the nominated
X11 cut buffers.
The default is the first cut buffer.
.PP
\fBwpaste\fP pastes the nominated X11 cut buffers(s)
to standard output.
The default is the first cut buffer.
.PP
Note that the cut buffers are numbered starting from 0.
.PP
Simple integer arguments pick a cut-buffer.
.PP
For \fBwcopy\fP,
the argument number picks a cut-buffer to copy the standard input to.
(Subsequent copies are taken from the first nominated buffer \-
it does not try to re-read the input!))
.SH EXAMPLES
.TP 1.5i
.B echo fred | wcopy 1 2
This puts the word "fred" into the 2nd and 3rd cut-buffers.
.TP 1.5i
.B wpaste | tr "A-Z" "a-z" | wcopy 1
This copies the clipboard then translates all upper case letters to lower in
the 1st
cut buffer and copies the result into the 2nd.
.TP 1.5i
.B wpaste 0 | fmt -w 66 | sed 's/^/> /' | wcopy 1
This reformats the clipboard to paragraphs with lines no longer than 66
characters, inserts typical email quoting characters, and copies the
output to the 2nd cut-buffer.
.TP 1.5i
.B wpaste | sed 's/^> *//' | wcopy
This removes email quotes from the start of lines in the clipboard
and replaces the clipboard with the un-quoted material.
.TP 1.5i
.B wpaste > ~/.myclipboard
Copies the clipboard into a location where it can be pixked up from other
computers (e.g. even from a Windows machine) \- as per the file permissions
you choose for the ".myclipboard" file.
.SH ENVIRONMENT
If WXCOPY_DEFS or WXPASTE_DEFS are defined in your environment,
they will always be provided as the first argument(s) to the
respective underlying command.
.SH BUGS
Don't use "-cutbuffer N" notation as per wxcopy/wxpaste:
stick to just using the plain unadorned number(s) that wcopy/wpaste expect.
.SH SEE ALSO
wxcopy(1), wxpaste(1), xcb(1)
.SH AUTHOR
Luke Kendall

View File

@@ -7,7 +7,8 @@ ja.po Japanese 1 ABE Shige <sabe@ibm.net>
MANOME Tomonori <manome@itlb.te.noda.sut.ac.jp> MANOME Tomonori <manome@itlb.te.noda.sut.ac.jp>
Takeo Hashimoto <HashimotoTakeo@mac.com> Takeo Hashimoto <HashimotoTakeo@mac.com>
pt.po Portuguese Eliphas Levy Theodoro <eliphas@conectiva.com.br> pt.po Portuguese Eliphas Levy Theodoro <eliphas@conectiva.com.br>
de.po German Bernd Eggert <Bernd.Eggert@t-online.de> de.po German Torsten Marek <torsten.marek@vbdnet.de>
Bernd Eggert <Bernd.Eggert@t-online.de>
Matthias Warkus <mawarkus@t-online.de> Matthias Warkus <mawarkus@t-online.de>
Guido Scholz <guido.scholz@bayernline.de> Guido Scholz <guido.scholz@bayernline.de>
es.po Spanish Raul Benito Garcia <raul@fi.upm.es> es.po Spanish Raul Benito Garcia <raul@fi.upm.es>