diff --git a/ChangeLog b/ChangeLog index 084afc04..44f14fa9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,10 @@ Changes since version 0.52.0: - fixed crash bug when hiding apps with appicon disabled - fixed wrong initial workspace # being shown on attributes panel - XSMP updates +- update colorpanel +- applied WMSound patch from "Quinn, Anthony" +- fixed focus bug with unfocusable window (I swear I had fixed that before...) +- applied windoze cycle patch from Paul Warren Changes since version 0.51.2: ............................. diff --git a/Makefile.in b/Makefile.in index 43ea29c1..1f123309 100644 --- a/Makefile.in +++ b/Makefile.in @@ -97,9 +97,9 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ./src/config.h CONFIG_CLEAN_FILES = DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \ -Makefile.in NEWS TODO acconfig.h acinclude.m4 aclocal.m4 config.guess \ -config.sub configure configure.in install-sh ltconfig ltmain.sh missing \ -mkinstalldirs src/config.h.in src/stamp-h.in +Makefile.in NEWS TODO acinclude.m4 aclocal.m4 config.guess config.sub \ +configure configure.in install-sh ltconfig ltmain.sh missing \ +mkinstalldirs DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) @@ -123,34 +123,6 @@ config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) -src/config.h: src/stamp-h - @if test ! -f $@; then \ - rm -f src/stamp-h; \ - $(MAKE) src/stamp-h; \ - else :; fi -src/stamp-h: $(srcdir)/src/config.h.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES= CONFIG_HEADERS=src/config.h \ - $(SHELL) ./config.status - @echo timestamp > src/stamp-h 2> /dev/null -$(srcdir)/src/config.h.in: $(srcdir)/src/stamp-h.in - @if test ! -f $@; then \ - rm -f $(srcdir)/src/stamp-h.in; \ - $(MAKE) $(srcdir)/src/stamp-h.in; \ - else :; fi -$(srcdir)/src/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h - cd $(top_srcdir) && $(AUTOHEADER) - @echo timestamp > $(srcdir)/src/stamp-h.in 2> /dev/null - -mostlyclean-hdr: - -clean-hdr: - -distclean-hdr: - -rm -f src/config.h - -maintainer-clean-hdr: - # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, @@ -340,33 +312,33 @@ distclean-generic: -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: -mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic +mostlyclean-am: mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-recursive -clean-am: clean-hdr clean-tags clean-generic mostlyclean-am +clean-am: clean-tags clean-generic mostlyclean-am clean: clean-recursive -distclean-am: distclean-hdr distclean-tags distclean-generic clean-am +distclean-am: distclean-tags distclean-generic clean-am -rm -f libtool distclean: distclean-recursive -rm -f config.status -maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ - maintainer-clean-generic distclean-am +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ + distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-recursive -rm -f config.status -.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ -install-data-recursive uninstall-data-recursive install-exec-recursive \ -uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ -all-recursive check-recursive installcheck-recursive info-recursive \ -dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ +.PHONY: install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ diff --git a/WINGs/wcolorpanel.c b/WINGs/wcolorpanel.c index 0f07a587..a22ba4ec 100644 --- a/WINGs/wcolorpanel.c +++ b/WINGs/wcolorpanel.c @@ -2,13 +2,14 @@ * ColorPanel for WINGs * * by ]d : Original idea and basic initial code - * Pascal Hofstee : Code for wheeldrawing and calculating colors from it. + * Pascal Hofstee : Code for wheeldrawing and calculating + * colors from it. * Primary coder of this Color Panel. * Alban Hertroys : Optimizations for algorithms for color- - * wheel. Also custom ColorPalettes and magnifying - * glass. Secondary coder ;) - * Alfredo K. Kojima : For pointing out memory-allocation problems - * and similair code-issues + * wheel. Also custom ColorPalettes and + * magnifying glass. Secondary coder ;) + * Alfredo K. Kojima : For pointing out memory-allocation + * problems and similair code-issues * Marco van Hylckama-Vlieg : For once again doing the artwork ;-) * * small note: Tabstop size = 4 @@ -88,13 +89,16 @@ typedef struct MovingView { typedef struct WheelMatrix { unsigned int width, height; /* Size of the colorwheel */ unsigned char *data[3]; /* Wheel data (R,G,B) */ - unsigned char values[256]; /* Precalculated values for R,G & B values 0..255 */ + unsigned char values[256]; /* Precalculated values R,G & B = 0-255 */ } wheelMatrix; typedef struct W_ColorPanel { WMWindow *win; WMFont *font8; WMFont *font12; + + void *clientData; + WMAction *action; /* Common Stuff */ WMColorWell *colorWell; @@ -184,19 +188,24 @@ typedef struct W_ColorPanel { /* Common Data Fields */ RColor color; /* Current color */ + Bool colorSet; /* Is color already set ? */ RHSVColor hsvcolor; /* Backup HSV Color */ WMColorPanelMode mode; /* Current color selection mode */ - WMColorPanelMode slidersmode; /* Current color selection mode at sliders panel */ - WMColorPanelMode lastChanged; /* Panel that last changed the color */ - int colx, coly; /* (x,y) of selection-marker in WheelMode */ - int palx, paly; /* (x,y) of selection-marker in CustomPaletteMode */ - float palXRatio, palYRatio; /* Ratios in x & y between original and scaled palettesize */ + WMColorPanelMode slidersmode;/* Current color sel. mode sliders panel */ + WMColorPanelMode lastChanged;/* Panel that last changed the color */ + int colx, coly; /* (x,y) of sel.-marker in WheelMode */ + int palx, paly; /* (x,y) of sel.-marker in + CustomPaletteMode */ + float palXRatio, palYRatio; /* Ratios in x & y between + original and scaled + palettesize */ int currentPalette; char *configurationPath; struct { + unsigned int continuous:1; + unsigned int dragging:1; - unsigned int done:1; } flags; } W_ColorPanel; @@ -234,7 +243,8 @@ enum { #define RGBTXT "/usr/X11R6/lib/X11/rgb.txt" #define MAX_LENGTH 1024 -static int fetchFile(char* toPath, char *imageSrcFile, char *imageDestFileName); +static int fetchFile(char* toPath, char *imageSrcFile, + char *imageDestFileName); char *generateNewFilename(char *curName); static void modeButtonCallback(WMWidget *w, void *data); @@ -242,11 +252,14 @@ static int getPickerPart(W_ColorPanel *panel, int x, int y); static void readConfiguration(W_ColorPanel *panel); static void readXColors(W_ColorPanel *panel); +static void closeWindowCallback(WMWidget *w, void *data); + static Cursor magnifyGrabPointer(W_ColorPanel *panel); static WMPoint magnifyInitialize(W_ColorPanel *panel); static void magnifyPutCursor(WMWidget *w, void *data); static Pixmap magnifyCreatePixmap(WMColorPanel *panel); -static Pixmap magnifyGetStorePixmap(W_ColorPanel *panel, int x1, int y1, int x2, int y2); +static Pixmap magnifyGetStorePixmap(W_ColorPanel *panel, int x1, int y1, + int x2, int y2); static Pixmap magnifyGetImage(WMScreen *scr, int x, int y); static wheelMatrix* wheelCreateMatrix(unsigned int width , unsigned int height); @@ -264,22 +277,27 @@ static void wheelUndrawSelection(W_ColorPanel *panel); static void wheelPositionSelection(W_ColorPanel *panel, int x, int y); static void wheelPositionSelectionOutBounds(W_ColorPanel *panel, int x, int y); -static void wheelUpdateBrightnessGradientFromHSV (W_ColorPanel *panel, RHSVColor topColor); +static void wheelUpdateBrightnessGradientFromHSV (W_ColorPanel *panel, + RHSVColor topColor); static void wheelUpdateBrightnessGradientFromLocation (W_ColorPanel *panel); static void wheelUpdateBrightnessGradient(W_ColorPanel *panel, RColor topColor); static void grayBrightnessSliderCallback(WMWidget *w, void *data); static void grayPresetButtonCallback(WMWidget *w, void *data); -static void grayBrightnessTextFieldCallback(void *observerData, WMNotification *notification); +static void grayBrightnessTextFieldCallback(void *observerData, + WMNotification *notification); static void rgbSliderCallback(WMWidget *w, void *data); -static void rgbTextFieldCallback(void *observerData, WMNotification *notification); +static void rgbTextFieldCallback(void *observerData, + WMNotification *notification); static void cmykSliderCallback(WMWidget *w, void *data); -static void cmykTextFieldCallback(void *observerData, WMNotification *notification); +static void cmykTextFieldCallback(void *observerData, + WMNotification *notification); static void hsbSliderCallback(WMWidget *w, void *data); -static void hsbTextFieldCallback(void *observerData, WMNotification *notification); +static void hsbTextFieldCallback(void *observerData, + WMNotification *notification); static void hsbUpdateBrightnessGradient(W_ColorPanel *panel); static void hsbUpdateSaturationGradient(W_ColorPanel *panel); static void hsbUpdateHueGradient(W_ColorPanel *panel); @@ -289,7 +307,8 @@ static void customSetPalette(W_ColorPanel *panel); static void customPaletteHandleEvents(XEvent *event, void *data); static void customPaletteHandleActionEvents(XEvent *event, void *data); static void customPalettePositionSelection(W_ColorPanel *panel, int x, int y); -static void customPalettePositionSelectionOutBounds(W_ColorPanel *panel, int x, int y); +static void customPalettePositionSelectionOutBounds(W_ColorPanel *panel, + int x, int y); static void customPaletteMenuCallback(WMWidget *w, void *data); static void customPaletteHistoryCallback(WMWidget *w, void *data); @@ -297,7 +316,8 @@ static void customPaletteMenuNewFromFile(W_ColorPanel *panel); static void customPaletteMenuRename(W_ColorPanel *panel); static void customPaletteMenuRemove(W_ColorPanel *panel); -static void colorListPaintItem(WMList *lPtr, int index, Drawable d, char *text, int state, WMRect *rect); +static void colorListPaintItem(WMList *lPtr, int index, Drawable d, char *text, + int state, WMRect *rect); static void colorListSelect(WMWidget *w, void *data); static void colorListColorMenuCallback(WMWidget *w, void *data); static void colorListListMenuCallback(WMWidget *w, void *data); @@ -310,6 +330,14 @@ static void cmykInit(W_ColorPanel *panel); static void hsbInit(W_ColorPanel *panel); + +void +WMSetColorPanelAction(WMColorPanel *panel, WMAction *action, void *data) +{ + panel->action = action; + panel->clientData = data; +} + static WMColorPanel* makeColorPanel(WMScreen *scrPtr, char *name) { @@ -326,55 +354,65 @@ makeColorPanel(WMScreen *scrPtr, char *name) panel = wmalloc(sizeof(WMColorPanel)); memset(panel, 0, sizeof(WMColorPanel)); + panel->colorSet = False; /* Color has not been set yet */ + panel->font8 = WMSystemFontOfSize(scrPtr, 8); panel->font12 = WMSystemFontOfSize(scrPtr, 12); - panel->win = WMCreateWindowWithStyle(scrPtr, name, WMTitledWindowMask | WMClosableWindowMask | WMResizableWindowMask); + panel->win = WMCreateWindowWithStyle(scrPtr, name, + WMTitledWindowMask | WMClosableWindowMask | WMResizableWindowMask); WMResizeWidget(panel->win, PWIDTH, PHEIGHT); WMSetWindowTitle(panel->win, "Colors"); + WMSetWindowCloseAction(panel->win, closeWindowCallback, panel); /* Set Default ColorPanel Mode(s) */ panel->mode = WMWheelModeColorPanel; panel->lastChanged = WMWheelModeColorPanel; panel->slidersmode = WMRGBModeColorPanel; - panel->configurationPath = wstrappend(wusergnusteppath(), "/Library/Colors/"); + panel->configurationPath = wstrappend(wusergnusteppath(), + "/Library/Colors/"); - /* Some Generic Purpose Widgets */ + /* Some General Purpose Widgets */ panel->colorWell = WMCreateColorWell(panel->win); WMResizeWidget(panel->colorWell, 134, 36); WSetColorWellBordered(panel->colorWell, False); WMMoveWidget(panel->colorWell, 56, 4); - panel->magnifyBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); + panel->magnifyBtn = WMCreateCustomButton(panel->win, + WBBStateLightMask|WBBStateChangeMask); WMResizeWidget(panel->magnifyBtn, 46, 36); WMMoveWidget(panel->magnifyBtn, 6,4); WMSetButtonAction(panel->magnifyBtn, magnifyPutCursor, panel); WMSetButtonImagePosition(panel->magnifyBtn, WIPImageOnly); WMSetButtonImage(panel->magnifyBtn, scrPtr->magnifyIcon); - panel->wheelBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); + panel->wheelBtn = WMCreateCustomButton(panel->win, + WBBStateLightMask|WBBStateChangeMask); WMResizeWidget(panel->wheelBtn, 46, 32); WMMoveWidget(panel->wheelBtn, 6, 44); WMSetButtonAction(panel->wheelBtn, modeButtonCallback, panel); WMSetButtonImagePosition(panel->wheelBtn, WIPImageOnly); WMSetButtonImage(panel->wheelBtn, scrPtr->wheelIcon); - panel->slidersBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); + panel->slidersBtn = WMCreateCustomButton(panel->win, + WBBStateLightMask|WBBStateChangeMask); WMResizeWidget(panel->slidersBtn, 46, 32); WMMoveWidget(panel->slidersBtn, 52, 44); WMSetButtonAction(panel->slidersBtn, modeButtonCallback, panel); WMSetButtonImagePosition(panel->slidersBtn, WIPImageOnly); WMSetButtonImage(panel->slidersBtn, scrPtr->rgbIcon); - panel->customPaletteBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); + panel->customPaletteBtn = WMCreateCustomButton(panel->win, + WBBStateLightMask|WBBStateChangeMask); WMResizeWidget(panel->customPaletteBtn, 46, 32); WMMoveWidget(panel->customPaletteBtn, 98, 44); WMSetButtonAction(panel->customPaletteBtn, modeButtonCallback, panel); WMSetButtonImagePosition(panel->customPaletteBtn, WIPImageOnly); WMSetButtonImage(panel->customPaletteBtn, scrPtr->customPaletteIcon); - panel->colorListBtn = WMCreateCustomButton(panel->win, WBBStateLightMask|WBBStateChangeMask); + panel->colorListBtn = WMCreateCustomButton(panel->win, + WBBStateLightMask|WBBStateChangeMask); WMResizeWidget(panel->colorListBtn, 46, 32); WMMoveWidget(panel->colorListBtn, 144, 44); WMSetButtonAction(panel->colorListBtn, modeButtonCallback, panel); @@ -397,18 +435,21 @@ makeColorPanel(WMScreen *scrPtr, char *name) W_ResizeView(panel->wheelView, colorWheelSize+4, colorWheelSize+4); W_MoveView(panel->wheelView, 0, 0); - /* Create an event handler to handle expose/click events in the ColorWheel */ - WMCreateEventHandler(panel->wheelView, ButtonPressMask|ButtonReleaseMask|EnterWindowMask - |LeaveWindowMask|ButtonMotionMask, wheelHandleActionEvents, panel); + /* Create an event handler to handle expose/click events in ColorWheel */ + WMCreateEventHandler(panel->wheelView, + ButtonPressMask|ButtonReleaseMask|EnterWindowMask| + LeaveWindowMask|ButtonMotionMask, wheelHandleActionEvents, panel); - WMCreateEventHandler(panel->wheelView, ExposureMask, wheelHandleEvents, panel); + WMCreateEventHandler(panel->wheelView, ExposureMask, wheelHandleEvents, + panel); panel->wheelBrightnessS = WMCreateSlider(panel->wheelFrm); WMResizeWidget(panel->wheelBrightnessS, 16, 153); WMMoveWidget(panel->wheelBrightnessS, 5+colorWheelSize+14, 1); WMSetSliderMinValue(panel->wheelBrightnessS, 0); WMSetSliderMaxValue(panel->wheelBrightnessS, 255); - WMSetSliderAction(panel->wheelBrightnessS, wheelBrightnessSliderCallback, panel); + WMSetSliderAction(panel->wheelBrightnessS, wheelBrightnessSliderCallback, + panel); WMSetSliderKnobThickness(panel->wheelBrightnessS, knobThickness); @@ -423,28 +464,32 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->seperatorFrm, PWIDTH - 8, 2); WMMoveWidget(panel->seperatorFrm, 0, 1); - panel->grayBtn = WMCreateCustomButton(panel->slidersFrm, WBBStateLightMask|WBBStateChangeMask); + panel->grayBtn = WMCreateCustomButton(panel->slidersFrm, + WBBStateLightMask|WBBStateChangeMask); WMResizeWidget(panel->grayBtn, 46, 24); WMMoveWidget(panel->grayBtn, 1, 8); WMSetButtonAction(panel->grayBtn, modeButtonCallback, panel); WMSetButtonImagePosition(panel->grayBtn, WIPImageOnly); WMSetButtonImage(panel->grayBtn, scrPtr->grayIcon); - panel->rgbBtn = WMCreateCustomButton(panel->slidersFrm, WBBStateLightMask|WBBStateChangeMask); + panel->rgbBtn = WMCreateCustomButton(panel->slidersFrm, + WBBStateLightMask|WBBStateChangeMask); WMResizeWidget(panel->rgbBtn, 46, 24); WMMoveWidget(panel->rgbBtn, 47, 8); WMSetButtonAction(panel->rgbBtn, modeButtonCallback, panel); WMSetButtonImagePosition(panel->rgbBtn, WIPImageOnly); WMSetButtonImage(panel->rgbBtn, scrPtr->rgbIcon); - panel->cmykBtn = WMCreateCustomButton(panel->slidersFrm, WBBStateLightMask|WBBStateChangeMask); + panel->cmykBtn = WMCreateCustomButton(panel->slidersFrm, + WBBStateLightMask|WBBStateChangeMask); WMResizeWidget(panel->cmykBtn, 46, 24); WMMoveWidget(panel->cmykBtn, 93, 8); WMSetButtonAction(panel->cmykBtn, modeButtonCallback, panel); WMSetButtonImagePosition(panel->cmykBtn, WIPImageOnly); WMSetButtonImage(panel->cmykBtn, scrPtr->cmykIcon); - panel->hsbBtn = WMCreateCustomButton(panel->slidersFrm, WBBStateLightMask|WBBStateChangeMask); + panel->hsbBtn = WMCreateCustomButton(panel->slidersFrm, + WBBStateLightMask|WBBStateChangeMask); WMResizeWidget(panel->hsbBtn, 46, 24); WMMoveWidget(panel->hsbBtn, 139, 8); WMSetButtonAction(panel->hsbBtn, modeButtonCallback, panel); @@ -486,7 +531,8 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMSetSliderMinValue(panel->grayBrightnessS, 0); WMSetSliderMaxValue(panel->grayBrightnessS, 100); WMSetSliderKnobThickness(panel->grayBrightnessS, knobThickness); - WMSetSliderAction(panel->grayBrightnessS, grayBrightnessSliderCallback, panel); + WMSetSliderAction(panel->grayBrightnessS, grayBrightnessSliderCallback, + panel); from.red = 0; from.green = 0; @@ -499,7 +545,9 @@ makeColorPanel(WMScreen *scrPtr, char *name) image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); RDestroyImage(image); - W_PaintText(W_VIEW(panel->grayBrightnessS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->white), False, "Brightness", strlen("Brightness")); + W_PaintText(W_VIEW(panel->grayBrightnessS), pixmap->pixmap, + panel->font12, 2, 0, 100, WALeft, WMColorGC(scrPtr->white), + False, "Brightness", strlen("Brightness")); WMSetSliderImage(panel->grayBrightnessS, pixmap); WMReleasePixmap(pixmap); @@ -507,7 +555,7 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->grayBrightnessT, 40, 18); WMMoveWidget(panel->grayBrightnessT, 146, 13); WMSetTextFieldAlignment(panel->grayBrightnessT, WALeft); - WMAddNotificationObserver(grayBrightnessTextFieldCallback, panel, \ + WMAddNotificationObserver(grayBrightnessTextFieldCallback, panel, WMTextDidEndEditingNotification, panel->grayBrightnessT); image = RCreateImage(13,13,False); @@ -522,7 +570,8 @@ makeColorPanel(WMScreen *scrPtr, char *name) panel->grayPresetBtn[i] = WMCreateCommandButton(panel->grayFrm); WMResizeWidget(panel->grayPresetBtn[i], 20, 24); WMMoveWidget(panel->grayPresetBtn[i], 2+(i*20), 34); - WMSetButtonAction(panel->grayPresetBtn[i], grayPresetButtonCallback, panel); + WMSetButtonAction(panel->grayPresetBtn[i], + grayPresetButtonCallback, panel); pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); WMSetButtonImage(panel->grayPresetBtn[i], pixmap); WMSetButtonImagePosition(panel->grayPresetBtn[i], WIPImageOnly); @@ -567,7 +616,9 @@ makeColorPanel(WMScreen *scrPtr, char *name) image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->rgbRedS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->white), False, "Red", strlen("Red")); + W_PaintText(W_VIEW(panel->rgbRedS), pixmap->pixmap, panel->font12, + 2, 0, 100, WALeft, WMColorGC(scrPtr->white), False, "Red", + strlen("Red")); RDestroyImage(image); WMSetSliderImage(panel->rgbRedS, pixmap); WMReleasePixmap(pixmap); @@ -576,7 +627,7 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->rgbRedT, 40, 18); WMMoveWidget(panel->rgbRedT, 146, 13); WMSetTextFieldAlignment(panel->rgbRedT, WALeft); - WMAddNotificationObserver(rgbTextFieldCallback, panel, \ + WMAddNotificationObserver(rgbTextFieldCallback, panel, WMTextDidEndEditingNotification, panel->rgbRedT); @@ -594,7 +645,9 @@ makeColorPanel(WMScreen *scrPtr, char *name) image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->rgbGreenS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->white), False, "Green", strlen("Green")); + W_PaintText(W_VIEW(panel->rgbGreenS), pixmap->pixmap, panel->font12, + 2, 0, 100, WALeft, WMColorGC(scrPtr->white), False, "Green", + strlen("Green")); RDestroyImage(image); WMSetSliderImage(panel->rgbGreenS, pixmap); WMReleasePixmap(pixmap); @@ -603,7 +656,7 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->rgbGreenT, 40, 18); WMMoveWidget(panel->rgbGreenT, 146, 35); WMSetTextFieldAlignment(panel->rgbGreenT, WALeft); - WMAddNotificationObserver(rgbTextFieldCallback, panel, \ + WMAddNotificationObserver(rgbTextFieldCallback, panel, WMTextDidEndEditingNotification, panel->rgbGreenT); @@ -621,7 +674,9 @@ makeColorPanel(WMScreen *scrPtr, char *name) image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->rgbBlueS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->white), False, "Blue", strlen("Blue")); + W_PaintText(W_VIEW(panel->rgbBlueS), pixmap->pixmap, panel->font12, + 2, 0, 100, WALeft, WMColorGC(scrPtr->white), False, "Blue", + strlen("Blue")); RDestroyImage(image); WMSetSliderImage(panel->rgbBlueS, pixmap); WMReleasePixmap(pixmap); @@ -630,7 +685,7 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->rgbBlueT, 40, 18); WMMoveWidget(panel->rgbBlueT, 146, 57); WMSetTextFieldAlignment(panel->rgbBlueT, WALeft); - WMAddNotificationObserver(rgbTextFieldCallback, panel, \ + WMAddNotificationObserver(rgbTextFieldCallback, panel, WMTextDidEndEditingNotification, panel->rgbBlueT); /* End of RGB Panel */ @@ -674,7 +729,9 @@ makeColorPanel(WMScreen *scrPtr, char *name) image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->cmykCyanS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->black), False, "Cyan", strlen("Cyan")); + W_PaintText(W_VIEW(panel->cmykCyanS), pixmap->pixmap, panel->font12, + 2, 0, 100, WALeft, WMColorGC(scrPtr->black), False, "Cyan", + strlen("Cyan")); RDestroyImage(image); WMSetSliderImage(panel->cmykCyanS, pixmap); WMReleasePixmap(pixmap); @@ -683,7 +740,7 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->cmykCyanT, 40, 18); WMMoveWidget(panel->cmykCyanT, 146, 13); WMSetTextFieldAlignment(panel->cmykCyanT, WALeft); - WMAddNotificationObserver(cmykTextFieldCallback, panel, \ + WMAddNotificationObserver(cmykTextFieldCallback, panel, WMTextDidEndEditingNotification, panel->cmykCyanT); @@ -701,7 +758,9 @@ makeColorPanel(WMScreen *scrPtr, char *name) image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->cmykMagentaS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->black), False, "Magenta", strlen("Magenta")); + W_PaintText(W_VIEW(panel->cmykMagentaS), pixmap->pixmap, panel->font12, + 2, 0, 100, WALeft, WMColorGC(scrPtr->black), False, "Magenta", + strlen("Magenta")); RDestroyImage(image); WMSetSliderImage(panel->cmykMagentaS, pixmap); WMReleasePixmap(pixmap); @@ -710,7 +769,7 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->cmykMagentaT, 40, 18); WMMoveWidget(panel->cmykMagentaT, 146, 35); WMSetTextFieldAlignment(panel->cmykMagentaT, WALeft); - WMAddNotificationObserver(cmykTextFieldCallback, panel, \ + WMAddNotificationObserver(cmykTextFieldCallback, panel, WMTextDidEndEditingNotification, panel->cmykMagentaT); @@ -728,7 +787,9 @@ makeColorPanel(WMScreen *scrPtr, char *name) image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->cmykYellowS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->black), False, "Yellow", strlen("Yellow")); + W_PaintText(W_VIEW(panel->cmykYellowS), pixmap->pixmap, panel->font12, + 2, 0, 100, WALeft, WMColorGC(scrPtr->black), False, "Yellow", + strlen("Yellow")); RDestroyImage(image); WMSetSliderImage(panel->cmykYellowS, pixmap); WMReleasePixmap(pixmap); @@ -737,7 +798,7 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->cmykYellowT, 40, 18); WMMoveWidget(panel->cmykYellowT, 146, 57); WMSetTextFieldAlignment(panel->cmykYellowT, WALeft); - WMAddNotificationObserver(cmykTextFieldCallback, panel, \ + WMAddNotificationObserver(cmykTextFieldCallback, panel, WMTextDidEndEditingNotification, panel->cmykYellowT); @@ -756,7 +817,9 @@ makeColorPanel(WMScreen *scrPtr, char *name) image = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); pixmap = WMCreatePixmapFromRImage(scrPtr, image, 0); - W_PaintText(W_VIEW(panel->cmykBlackS), pixmap->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scrPtr->black), False, "Black", strlen("Black")); + W_PaintText(W_VIEW(panel->cmykBlackS), pixmap->pixmap, panel->font12, + 2, 0, 100, WALeft, WMColorGC(scrPtr->black), False, "Black", + strlen("Black")); RDestroyImage(image); WMSetSliderImage(panel->cmykBlackS, pixmap); WMReleasePixmap(pixmap); @@ -765,7 +828,7 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->cmykBlackT, 40, 18); WMMoveWidget(panel->cmykBlackT, 146, 79); WMSetTextFieldAlignment(panel->cmykBlackT, WALeft); - WMAddNotificationObserver(cmykTextFieldCallback, panel, \ + WMAddNotificationObserver(cmykTextFieldCallback, panel, WMTextDidEndEditingNotification, panel->cmykBlackT); /* End of CMYK Panel */ @@ -787,7 +850,7 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->hsbHueT, 40, 18); WMMoveWidget(panel->hsbHueT, 146, 13); WMSetTextFieldAlignment(panel->hsbHueT, WALeft); - WMAddNotificationObserver(hsbTextFieldCallback, panel, \ + WMAddNotificationObserver(hsbTextFieldCallback, panel, WMTextDidEndEditingNotification, panel->hsbHueT); @@ -803,7 +866,7 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->hsbSaturationT, 40, 18); WMMoveWidget(panel->hsbSaturationT, 146, 35); WMSetTextFieldAlignment(panel->hsbSaturationT, WALeft); - WMAddNotificationObserver(hsbTextFieldCallback, panel, \ + WMAddNotificationObserver(hsbTextFieldCallback, panel, WMTextDidEndEditingNotification, panel->hsbSaturationT); @@ -819,7 +882,7 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->hsbBrightnessT, 40, 18); WMMoveWidget(panel->hsbBrightnessT, 146, 57); WMSetTextFieldAlignment(panel->hsbBrightnessT, WALeft); - WMAddNotificationObserver(hsbTextFieldCallback, panel, \ + WMAddNotificationObserver(hsbTextFieldCallback, panel, WMTextDidEndEditingNotification, panel->hsbBrightnessT); /* End of HSB Panel */ @@ -832,10 +895,13 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->customPaletteFrm, PWIDTH - 8, PHEIGHT - 80 - 26); WMMoveWidget(panel->customPaletteFrm, 5, 80); - panel->customPaletteHistoryBtn = WMCreatePopUpButton(panel->customPaletteFrm); + panel->customPaletteHistoryBtn = WMCreatePopUpButton( + panel->customPaletteFrm); WMAddPopUpButtonItem(panel->customPaletteHistoryBtn, "Spectrum"); - WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn)-1); - WMSetPopUpButtonAction(panel->customPaletteHistoryBtn, customPaletteHistoryCallback, panel); + WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, + WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn)-1); + WMSetPopUpButtonAction(panel->customPaletteHistoryBtn, + customPaletteHistoryCallback, panel); WMResizeWidget(panel->customPaletteHistoryBtn, PWIDTH - 8, 20); WMMoveWidget(panel->customPaletteHistoryBtn, 0, 0); @@ -844,21 +910,27 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMResizeWidget(panel->customPaletteContentFrm, PWIDTH - 8, PHEIGHT - 156); WMMoveWidget(panel->customPaletteContentFrm, 0, 23); - panel->customPaletteContentView = W_CreateView(W_VIEW(panel->customPaletteContentFrm)); + panel->customPaletteContentView = W_CreateView( + W_VIEW(panel->customPaletteContentFrm)); /* XXX Can we create a view ? */ - W_ResizeView(panel->customPaletteContentView, customPaletteWidth, customPaletteHeight); + W_ResizeView(panel->customPaletteContentView, customPaletteWidth, + customPaletteHeight); W_MoveView(panel->customPaletteContentView, 2, 2); - /* Create an event handler to handle expose/click events in the CustomPalette */ - WMCreateEventHandler(panel->customPaletteContentView, ButtonPressMask|ButtonReleaseMask|EnterWindowMask - |LeaveWindowMask|ButtonMotionMask, customPaletteHandleActionEvents, panel); + /* Create event handler to handle expose/click events in CustomPalette */ + WMCreateEventHandler(panel->customPaletteContentView, + ButtonPressMask|ButtonReleaseMask|EnterWindowMask| + LeaveWindowMask|ButtonMotionMask, customPaletteHandleActionEvents, + panel); - WMCreateEventHandler(panel->customPaletteContentView, ExposureMask, customPaletteHandleEvents, panel); + WMCreateEventHandler(panel->customPaletteContentView, ExposureMask, + customPaletteHandleEvents, panel); panel->customPaletteMenuBtn = WMCreatePopUpButton(panel->customPaletteFrm); WMSetPopUpButtonPullsDown(panel->customPaletteMenuBtn, 1); WMSetPopUpButtonText(panel->customPaletteMenuBtn, "Palette"); - WMSetPopUpButtonAction(panel->customPaletteMenuBtn, customPaletteMenuCallback, panel); + WMSetPopUpButtonAction(panel->customPaletteMenuBtn, + customPaletteMenuCallback, panel); WMResizeWidget(panel->customPaletteMenuBtn, PWIDTH - 8, 20); WMMoveWidget(panel->customPaletteMenuBtn, 0, PHEIGHT - 130); @@ -871,7 +943,8 @@ makeColorPanel(WMScreen *scrPtr, char *name) WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuRename, 0); WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuRemove, 0); WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuCopy, 0); - WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuNewFromClipboard, 0); + WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, + CPmenuNewFromClipboard, 0); customRenderSpectrum(panel); panel->currentPalette = 0; @@ -885,8 +958,10 @@ makeColorPanel(WMScreen *scrPtr, char *name) panel->colorListHistoryBtn = WMCreatePopUpButton(panel->colorListFrm); WMAddPopUpButtonItem(panel->colorListHistoryBtn, "X11-Colors"); - WMSetPopUpButtonSelectedItem(panel->colorListHistoryBtn, WMGetPopUpButtonNumberOfItems(panel->colorListHistoryBtn)-1); - /* WMSetPopUpButtonAction(panel->colorListHistoryBtn, colorListHistoryCallback, panel); */ + WMSetPopUpButtonSelectedItem(panel->colorListHistoryBtn, + WMGetPopUpButtonNumberOfItems(panel->colorListHistoryBtn)-1); + /* WMSetPopUpButtonAction(panel->colorListHistoryBtn, + * colorListHistoryCallback, panel); */ WMResizeWidget(panel->colorListHistoryBtn, PWIDTH - 8, 20); WMMoveWidget(panel->colorListHistoryBtn, 0, 0); @@ -900,7 +975,8 @@ makeColorPanel(WMScreen *scrPtr, char *name) panel->colorListColorMenuBtn = WMCreatePopUpButton(panel->colorListFrm); WMSetPopUpButtonPullsDown(panel->colorListColorMenuBtn, 1); WMSetPopUpButtonText(panel->colorListColorMenuBtn, "Color"); - WMSetPopUpButtonAction(panel->colorListColorMenuBtn, colorListColorMenuCallback, panel); + WMSetPopUpButtonAction(panel->colorListColorMenuBtn, + colorListColorMenuCallback, panel); WMResizeWidget(panel->colorListColorMenuBtn, (PWIDTH - 16)/2, 20); WMMoveWidget(panel->colorListColorMenuBtn, 0, PHEIGHT - 130); @@ -915,9 +991,11 @@ makeColorPanel(WMScreen *scrPtr, char *name) panel->colorListListMenuBtn = WMCreatePopUpButton(panel->colorListFrm); WMSetPopUpButtonPullsDown(panel->colorListListMenuBtn, 1); WMSetPopUpButtonText(panel->colorListListMenuBtn, "List"); - WMSetPopUpButtonAction(panel->colorListListMenuBtn, colorListListMenuCallback, panel); + WMSetPopUpButtonAction(panel->colorListListMenuBtn, + colorListListMenuCallback, panel); WMResizeWidget(panel->colorListListMenuBtn, (PWIDTH - 16)/2, 20); - WMMoveWidget(panel->colorListListMenuBtn, (PWIDTH - 16)/2 + 8, PHEIGHT - 130); + WMMoveWidget(panel->colorListListMenuBtn, (PWIDTH - 16)/2 + 8, + PHEIGHT - 130); WMAddPopUpButtonItem(panel->colorListListMenuBtn, "New..."); WMAddPopUpButtonItem(panel->colorListListMenuBtn, "Rename..."); @@ -968,17 +1046,21 @@ WMFreeColorPanel(WMColorPanel *panel) W_Screen *scr = WMWidgetScreen(panel->win); if (panel == scr->sharedColorPanel) { - WMWidgetScreen(panel->win)->sharedColorPanel = NULL; + scr->sharedColorPanel = NULL; } + WMRemoveNotificationObserver(panel); + WMUnmapWidget(panel->win); WMDestroyWidget(panel->win); + + /* fonts */ if (panel->font8) WMReleaseFont(panel->font8); if (panel->font12) WMReleaseFont(panel->font12); - if (panel->magnifyGlass->pixmap) - XFreePixmap(scr->display, panel->magnifyGlass->pixmap); + + /* pixmaps */ if (panel->wheelMtrx) wheelDestroyMatrix(panel->wheelMtrx); if (panel->wheelImg) @@ -989,6 +1071,8 @@ WMFreeColorPanel(WMColorPanel *panel) XFreePixmap(scr->display, panel->selectionBackImg); if (panel->customPaletteImg) RDestroyImage(panel->customPaletteImg); + + /* structs */ if (panel->lastBrowseDir) free(panel->lastBrowseDir); if (panel->configurationPath) @@ -998,52 +1082,40 @@ WMFreeColorPanel(WMColorPanel *panel) } -int -WMRunColorPanel(WMColorPanel *panel, WMWindow *owner, RColor color) +void +WMCloseColorPanel(WMColorPanel *panel) { - WMScreen *scr = WMWidgetScreen(panel->win); - XEvent event; - RHSVColor hsvcolor; - GC bgc = W_GC(scr->black); - GC wgc = W_GC(scr->white); - - WMChangePanelOwner(panel->win, owner); - - WMSetColorPanelColor(panel, color); - panel->wheelMtrx = wheelInitMatrix(panel); /* Needs to be done After Color is set */ - - /* Maybe put this in sub-function ... Initialising selection images */ - RRGBtoHSV(&color, &hsvcolor); - panel->colx = 2 + rint((colorWheelSize / 2.0) * (1 + (hsvcolor.saturation/255.0) * cos( hsvcolor.hue*M_PI/180.0))); - panel->coly = 2 + rint((colorWheelSize / 2.0) * (1 + (hsvcolor.saturation/255.0) * sin(-hsvcolor.hue*M_PI/180.0))); - wheelUpdateBrightnessGradientFromHSV(panel, hsvcolor); - WMSetSliderValue(panel->wheelBrightnessS, 255 - hsvcolor.value); - - panel->selectionImg = XCreatePixmap(scr->display, W_VIEW(panel->wheelFrm)->window, 4, 4, scr->depth); - XFillRectangle(scr->display, panel->selectionImg, bgc, 0, 0, 4, 4); - XFillRectangle(scr->display, panel->selectionImg, wgc, 1, 1, 2, 2); - /* End of initialisation section */ - - panel->palx = customPaletteWidth/2; - panel->paly = customPaletteHeight/2; - - WMSetPickerMode(panel, WMWheelModeColorPanel); - - panel->flags.done = 0; - - WMMapWidget(panel->win); - - while (!panel->flags.done) { - WMNextEvent(scr->display, &event); - WMHandleEvent(&event); - } - - WMCloseWindow(panel->win); - - return 0; + WMCloseWindow(panel->win); + WMFreeColorPanel(panel); } +void +WMShowColorPanel(WMColorPanel *panel) +{ + WMScreen *scr = WMWidgetScreen(panel->win); + WMColor *white = WMWhiteColor(scr); + + if (!panel->colorSet ) + WMSetColorPanelColor(panel, white); + WMReleaseColor(white); + + WMSetColorPanelPickerMode(panel, WMWheelModeColorPanel); + wheelInit(panel); + + WMMapWidget(panel->win); +} + + +static void +closeWindowCallback(WMWidget *w, void *data) +{ + W_ColorPanel *panel = (W_ColorPanel*)data; + + WMCloseColorPanel(panel); +/* WMUnmapWidget(panel->win); */ +} + static void readConfiguration(W_ColorPanel *panel) @@ -1056,12 +1128,16 @@ readConfiguration(W_ColorPanel *panel) if (stat(panel->configurationPath, &stat_buf)!=0) { - if (mkdir(panel->configurationPath, S_IRWXU|S_IRGRP|S_IROTH|S_IXGRP|S_IXOTH)!=0) { - wsyserror("ColorPanel could not create directory %s needed to store configurations", panel->configurationPath); + if (mkdir(panel->configurationPath, + S_IRWXU|S_IRGRP|S_IROTH|S_IXGRP|S_IXOTH)!=0) { + wsyserror("ColorPanel could not create directory %s needed" + " to store configurations", panel->configurationPath); WMSetPopUpButtonEnabled(panel->customPaletteMenuBtn, False); WMSetPopUpButtonEnabled(panel->colorListColorMenuBtn, False); WMSetPopUpButtonEnabled(panel->colorListListMenuBtn, False); - WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win, "File Error", "Could not create ColorPanel configuration directory", "OK", NULL, NULL); + WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win, + "File Error", "Could not create ColorPanel configuration" + " directory", "OK", NULL, NULL); } return; } @@ -1113,14 +1189,15 @@ readXColors(W_ColorPanel *panel) void -WMSetPickerMode(WMColorPanel *panel, WMColorPanelMode mode) +WMSetColorPanelPickerMode(WMColorPanel *panel, WMColorPanelMode mode) { W_Screen *scr = WMWidgetScreen(panel->win); if (mode != WMWheelModeColorPanel) { WMUnmapWidget(panel->wheelFrm); if (panel->selectionBackImg) { - XFreePixmap(WMWidgetScreen(panel->win)->display, panel->selectionBackImg); + XFreePixmap(WMWidgetScreen(panel->win)->display, + panel->selectionBackImg); panel->selectionBackImg = None; } } @@ -1135,13 +1212,14 @@ WMSetPickerMode(WMColorPanel *panel, WMColorPanelMode mode) if (mode != WMCustomPaletteModeColorPanel) { WMUnmapWidget(panel->customPaletteFrm); if (panel->selectionBackImg) { - XFreePixmap(WMWidgetScreen(panel->win)->display, panel->selectionBackImg); + XFreePixmap(WMWidgetScreen(panel->win)->display, + panel->selectionBackImg); panel->selectionBackImg = None; } } if (mode != WMColorListModeColorPanel) WMUnmapWidget(panel->colorListFrm); - if ((mode != WMGrayModeColorPanel) && (mode != WMRGBModeColorPanel) && \ + if ((mode != WMGrayModeColorPanel) && (mode != WMRGBModeColorPanel) && (mode != WMCMYKModeColorPanel) && (mode != WMHSBModeColorPanel)) WMUnmapWidget(panel->slidersFrm); else @@ -1200,17 +1278,23 @@ WMSetPickerMode(WMColorPanel *panel, WMColorPanelMode mode) } void -WMSetColorPanelColor(WMColorPanel *panel, RColor color) +WMSetColorPanelColor(WMColorPanel *panel, WMColor *color) { WMScreen *scr = WMWidgetScreen(panel->win); - WMColor *wellcolor; + RHSVColor hsvcolor; + RColor intcolor; + GC bgc = WMColorGC(scr->black); + GC wgc = WMColorGC(scr->white); int originalHue; - wellcolor = WMCreateRGBColor(scr, color.red << 8, color.green << 8, color.blue << 8, True); - WMSetColorWellColor(panel->colorWell, wellcolor); - WMReleaseColor(wellcolor); + WMSetColorWellColor(panel->colorWell, color); - panel->color = color; + intcolor.red = color->color.red >> 8; + intcolor.green = color->color.green >> 8; + intcolor.blue = color->color.blue >> 8; + + panel->color = intcolor; + panel->colorSet = True; /* If color was set by HSB-Panel do not convert back to hsv */ if (panel->lastChanged != WMHSBModeColorPanel) { @@ -1228,6 +1312,65 @@ WMSetColorPanelColor(WMColorPanel *panel, RColor color) RRGBtoHSV(&panel->color, &panel->hsvcolor); } } + + panel->wheelMtrx = wheelInitMatrix(panel); /* Needs to be done After Color is set */ + + /* Maybe put this in a sub-function ... Initialising selected images */ + RRGBtoHSV(&intcolor, &hsvcolor); + panel->colx = 2 + rint((colorWheelSize / 2.0) * (1 + + (hsvcolor.saturation/255.0) * cos( hsvcolor.hue*M_PI/180.0))); + panel->coly = 2 + rint((colorWheelSize / 2.0) * (1 + + (hsvcolor.saturation/255.0) * sin(-hsvcolor.hue*M_PI/180.0))); + wheelUpdateBrightnessGradientFromHSV(panel, hsvcolor); + WMSetSliderValue(panel->wheelBrightnessS, 255 - hsvcolor.value); + + panel->selectionImg = XCreatePixmap(scr->display, + W_VIEW(panel->wheelFrm)->window, 4, 4, scr->depth); + XFillRectangle(scr->display, panel->selectionImg, bgc, 0, 0, 4, 4); + XFillRectangle(scr->display, panel->selectionImg, wgc, 1, 1, 2, 2); + /* End of initialisation section */ + + panel->palx = customPaletteWidth/2; + panel->paly = customPaletteHeight/2; + + WMSetColorPanelPickerMode(panel, panel->mode); +} + + +updateSwatch(WMColorPanel *panel, RColor color) +{ + WMScreen *scr = WMWidgetScreen(panel->win); + WMColor *wellcolor; + int originalHue; + + wellcolor = WMCreateRGBColor(scr, color.red << 8, color.green << 8, + color.blue << 8, True); + + WMSetColorWellColor(panel->colorWell, wellcolor); + WMReleaseColor(wellcolor); + + panel->color = color; + + /* If color was set by HSB-Panel do not convert back to hsv */ + if (panel->lastChanged != WMHSBModeColorPanel) { + + /* if color is black, hue is undetermined, so it must be restored */ + if ((panel->color.red == 0) && + (panel->color.green == 0) && + (panel->color.blue == 0) && + (panel->hsvcolor.hue <= 359)) + { + originalHue = panel->hsvcolor.hue; + RRGBtoHSV(&panel->color, &panel->hsvcolor); + panel->hsvcolor.hue = originalHue; + } else { + RRGBtoHSV(&panel->color, &panel->hsvcolor); + } + } + + if (panel->action && (!panel->flags.dragging || panel->flags.continuous)) { + (*panel->action)(panel, panel->clientData); + } } static void @@ -1236,21 +1379,21 @@ modeButtonCallback(WMWidget *w, void *data) W_ColorPanel *panel = (W_ColorPanel*)(data); if (w == panel->wheelBtn) - WMSetPickerMode(panel, WMWheelModeColorPanel); + WMSetColorPanelPickerMode(panel, WMWheelModeColorPanel); else if (w == panel->slidersBtn) - WMSetPickerMode(panel, panel->slidersmode); + WMSetColorPanelPickerMode(panel, panel->slidersmode); else if (w == panel->customPaletteBtn) - WMSetPickerMode(panel, WMCustomPaletteModeColorPanel); + WMSetColorPanelPickerMode(panel, WMCustomPaletteModeColorPanel); else if (w == panel->colorListBtn) - WMSetPickerMode(panel, WMColorListModeColorPanel); + WMSetColorPanelPickerMode(panel, WMColorListModeColorPanel); else if (w == panel->grayBtn) - WMSetPickerMode(panel, WMGrayModeColorPanel); + WMSetColorPanelPickerMode(panel, WMGrayModeColorPanel); else if (w == panel->rgbBtn) - WMSetPickerMode(panel, WMRGBModeColorPanel); + WMSetColorPanelPickerMode(panel, WMRGBModeColorPanel); else if (w == panel->cmykBtn) - WMSetPickerMode(panel, WMCMYKModeColorPanel); + WMSetColorPanelPickerMode(panel, WMCMYKModeColorPanel); else if (w == panel->hsbBtn) - WMSetPickerMode(panel, WMHSBModeColorPanel); + WMSetColorPanelPickerMode(panel, WMHSBModeColorPanel); } @@ -1266,7 +1409,8 @@ magnifyGetImage(WMScreen *scr, int x, int y) const int half_mask_width = (Cursor_mask_width +1)/2; const int half_mask_height = (Cursor_mask_height +1)/2; - /* Coordinate correction for back pixmap */ + /* Coordinate correction for back pixmap + * if magnifying glass is at screen-borders */ x0 = 0; y0 = 0; w0 = Cursor_mask_width; h0 = Cursor_mask_height; if (x < half_mask_width) { @@ -1290,6 +1434,7 @@ magnifyGetImage(WMScreen *scr, int x, int y) if (y > displayHeight) y = displayHeight; h0 = Cursor_mask_height - (half_mask_height - (displayHeight - y)); } + /* end of coordinate correction */ image = XGetImage(scr->display, scr->rootWin, x + x0 - Cursor_x_hot, y + y0 - Cursor_y_hot, w0, h0, AllPlanes, ZPixmap); @@ -1297,6 +1442,7 @@ magnifyGetImage(WMScreen *scr, int x, int y) pixmap = XCreatePixmap(scr->display, W_DRAWABLE(scr), Cursor_mask_width, Cursor_mask_height, scr->depth); XPutImage(scr->display, pixmap, scr->copyGC, image, 0, 0, x0, y0, w0, h0); + XDestroyImage(image); return pixmap; } @@ -1385,7 +1531,8 @@ magnifyCreatePixmap(WMColorPanel *panel) for (v=0; v<5+1; v++) for (i=u*5; i < (u+1)*5; i++) /* magnify it 5 times */ for (j=v*5; j < (v+1)*5; j++) - XCopyArea(scr->display, backPix, magPix, scr->copyGC, u +9, v +9, 1, 1, i, j); + XCopyArea(scr->display, backPix, magPix, scr->copyGC, + u +9, v +9, 1, 1, i, j); /* Get color under hotspot */ ofs = half_mask_width + half_mask_height * Cursor_mask_width; @@ -1395,12 +1542,13 @@ magnifyCreatePixmap(WMColorPanel *panel) panel->magnifyGlass->color.blue = pixelImg->data[2][ofs]; RDestroyImage(pixelImg); - /* Copy the magnified pixmap, with the clip mask, to the background pixmap */ + /* Copy the magnified pixmap, with the clip mask, to background pixmap */ XSetClipMask(scr->display, scr->clipGC, panel->magnifyGlass->mask); XSetClipOrigin(scr->display, scr->clipGC, 0, 0); - XCopyArea(scr->display, magPix, backPix, scr->clipGC, 2, 2, Cursor_mask_width, - Cursor_mask_height, 0, 0); /* (2,2) puts center pixel on center of glass */ + XCopyArea(scr->display, magPix, backPix, scr->clipGC, 2, 2, + Cursor_mask_width, Cursor_mask_height, 0, 0); + /* (2,2) puts center pixel on center of glass */ XFreePixmap(scr->display, magPix); @@ -1425,7 +1573,6 @@ magnifyCreateView(W_ColorPanel *panel) magView->attribs.save_under = True; W_RealizeView(magView); - W_MapView(magView); return magView; } @@ -1437,7 +1584,7 @@ magnifyGrabPointer(W_ColorPanel *panel) W_Screen *scr = WMWidgetScreen(panel->win); Pixmap magPixmap, magPixmap2; Cursor magCursor; - XColor fgColor = {0, 0,0,0, DoRed|DoGreen|DoBlue}; + XColor fgColor = {0, 0,0,0, DoRed|DoGreen|DoBlue}; XColor bgColor = {0, 0xbf00, 0xa000, 0x5000, DoRed|DoGreen|DoBlue}; /* Cursor creation stuff */ @@ -1489,9 +1636,9 @@ magnifyInitialize(W_ColorPanel *panel) panel->magnifyGlass->valid = True; pixmap = magnifyCreatePixmap(panel); - W_MoveView(panel->magnifyGlass->view, x - Cursor_x_hot +1, y - Cursor_y_hot +1); - XSetWindowBackgroundPixmap(scr->display, panel->magnifyGlass->view->window, pixmap); + XSetWindowBackgroundPixmap(scr->display, panel->magnifyGlass->view->window, + pixmap); XClearWindow(scr->display, panel->magnifyGlass->view->window); XFlush(scr->display); @@ -1517,20 +1664,24 @@ magnifyPutCursor(WMWidget *w, void *data) /* Destroy wheelBackImg, so it'll update properly */ if (panel->selectionBackImg) { - XFreePixmap(WMWidgetScreen(panel->win)->display, panel->selectionBackImg); + XFreePixmap(WMWidgetScreen(panel->win)->display, + panel->selectionBackImg); panel->selectionBackImg = None; } /* Create magnifying glass */ panel->magnifyGlass = wmalloc(sizeof(MovingView)); - panel->magnifyGlass->view = magnifyCreateView(panel); - magCursor = magnifyGrabPointer(panel); initialPosition = magnifyInitialize(panel); x = initialPosition.x; y = initialPosition.y; + W_MoveView(panel->magnifyGlass->view, x - Cursor_x_hot +1, + y - Cursor_y_hot +1); + W_MapView(panel->magnifyGlass->view); + + magCursor = magnifyGrabPointer(panel); while(panel->magnifyGlass->valid) { @@ -1540,7 +1691,7 @@ magnifyPutCursor(WMWidget *w, void *data) { case ButtonPress: if (event.xbutton.button == Button1) { - WMSetColorPanelColor(panel, panel->magnifyGlass->color); + updateSwatch(panel, panel->magnifyGlass->color); switch (panel->mode) { case WMWheelModeColorPanel: wheelInit(panel); @@ -1572,24 +1723,50 @@ magnifyPutCursor(WMWidget *w, void *data) case MotionNotify: /* Get a "dirty rectangle" */ panel->magnifyGlass->pixmap = magnifyGetStorePixmap( - panel, x+1, y+1, /* Cool, a circular reference ! */ - event.xmotion.x_root+1, event.xmotion.y_root+1); /* also free's magnifyGlass->pixmap */ + panel, x+1, y+1, + event.xmotion.x_root+1, event.xmotion.y_root+1); + /* also free's magnifyGlass->pixmap */ /* Update coordinates */ x = event.xmotion.x_root; y = event.xmotion.y_root; /* Move view */ - W_MoveView(panel->magnifyGlass->view, x - Cursor_x_hot +1, y - Cursor_y_hot +1); + W_MoveView(panel->magnifyGlass->view, x - Cursor_x_hot +1, + y - Cursor_y_hot +1); /* Put new image (with magn.) in view */ pixmap = magnifyCreatePixmap(panel); - XSetWindowBackgroundPixmap(scr->display, panel->magnifyGlass->view->window, pixmap); + XSetWindowBackgroundPixmap(scr->display, + panel->magnifyGlass->view->window, pixmap); XClearWindow(scr->display, panel->magnifyGlass->view->window); XFreePixmap(scr->display, pixmap); break; + case FocusOut: /* fall through */ + case FocusIn: + /* + * Color Panel window (panel->win) lost or received focus. + * We need to update the pixmap in the magnifying glass. + */ + XUngrabPointer(scr->display, CurrentTime); + W_UnmapView(panel->magnifyGlass->view); + + magnifyInitialize(panel); + + W_MapView(panel->magnifyGlass->view); + XGrabPointer (scr->display, + panel->magnifyGlass->view->window, + True, + PointerMotionMask | ButtonPressMask, + GrabModeAsync, + GrabModeAsync, + scr->rootWin, + magCursor, + CurrentTime); + break; + default: WMHandleEvent(&event); break; @@ -1602,7 +1779,11 @@ magnifyPutCursor(WMWidget *w, void *data) W_DestroyView(panel->magnifyGlass->view); XFreePixmap(scr->display, panel->magnifyGlass->mask); + panel->magnifyGlass->mask = None; + XFreePixmap(scr->display, panel->magnifyGlass->pixmap); + panel->magnifyGlass->pixmap = None; + free(panel->magnifyGlass); } @@ -1703,14 +1884,19 @@ wheelInitMatrix(W_ColorPanel *panel) /* offsets are counterclockwise (in triangles) */ + + /* top quarter */ if (y < (colorWheelSize+4)/2) ofs[0]++; - /* top quarter */ - ofs[1] += colorWheelSize + 4; /* left quarter */ + /* left quarter */ + ofs[1] += colorWheelSize + 4; - ofs[2] = (colorWheelSize + 4) * (colorWheelSize + 4) - 1 - ofs[0]; /* bottom quarter */ - ofs[3] = (colorWheelSize + 4) * (colorWheelSize + 4) - 1 - ofs[1]; /* right quarter */ + /* bottom quarter */ + ofs[2] = (colorWheelSize + 4) * (colorWheelSize + 4) - 1 - ofs[0]; + + /* right quarter */ + ofs[3] = (colorWheelSize + 4) * (colorWheelSize + 4) - 1 - ofs[1]; if (sat < 256) { cur_hsv.saturation = (unsigned char)sat; @@ -1807,9 +1993,12 @@ wheelRender(W_ColorPanel *panel) bp = image->data[2] + ofs; if (wheelInsideColorWheel(panel, ofs)) { - *rp = (unsigned int)(panel->wheelMtrx->values[ panel->wheelMtrx->data[0][ofs] ]); - *gp = (unsigned int)(panel->wheelMtrx->values[ panel->wheelMtrx->data[1][ofs] ]); - *bp = (unsigned int)(panel->wheelMtrx->values[ panel->wheelMtrx->data[2][ofs] ]); + *rp = (unsigned int)(panel->wheelMtrx->values[ + panel->wheelMtrx->data[0][ofs] ]); + *gp = (unsigned int)(panel->wheelMtrx->values[ + panel->wheelMtrx->data[1][ofs] ]); + *bp = (unsigned int)(panel->wheelMtrx->values[ + panel->wheelMtrx->data[2][ofs] ]); } else { *rp = (unsigned char)(gray.red); @@ -1822,14 +2011,17 @@ wheelRender(W_ColorPanel *panel) if (panel->wheelImg) XFreePixmap(scr->display, panel->wheelImg); - panel->wheelImg = XCreatePixmap(scr->display, W_DRAWABLE(scr), colorWheelSize+4, colorWheelSize+4, scr->depth); + panel->wheelImg = XCreatePixmap(scr->display, W_DRAWABLE(scr), + colorWheelSize+4, colorWheelSize+4, scr->depth); RConvertImage(scr->rcontext, image, &panel->wheelImg); - /* Check backimage existence. If it doesn't exist, allocate it and fill it */ + /* Check if backimage exists. If it doesn't, allocate and fill it */ if (!panel->selectionBackImg) { - panel->selectionBackImg = XCreatePixmap(scr->display, W_VIEW(panel->wheelFrm)->window, 4, 4, scr->depth); - XCopyArea(scr->display, panel->wheelImg, panel->selectionBackImg, scr->copyGC, - panel->colx -2, panel->coly -2, 4, 4, 0, 0); /* -2 is for hot spot correction */ + panel->selectionBackImg = XCreatePixmap(scr->display, + W_VIEW(panel->wheelFrm)->window, 4, 4, scr->depth); + XCopyArea(scr->display, panel->wheelImg, panel->selectionBackImg, + scr->copyGC, panel->colx -2, panel->coly -2, 4, 4, 0, 0); + /* -2 is hot spot correction */ } RDestroyImage(image); @@ -1848,12 +2040,12 @@ wheelPaint (W_ColorPanel *panel) { W_Screen *scr = WMWidgetScreen(panel->win); - XCopyArea(scr->display, panel->wheelImg, panel->wheelView->window, scr->copyGC, - 0, 0, colorWheelSize+4, colorWheelSize+4, 0, 0); + XCopyArea(scr->display, panel->wheelImg, panel->wheelView->window, + scr->copyGC, 0, 0, colorWheelSize+4, colorWheelSize+4, 0, 0); /* Draw selection image */ - XCopyArea(scr->display, panel->selectionImg, panel->wheelView->window, scr->copyGC, - 0, 0, 4, 4, panel->colx -2, panel->coly -2); + XCopyArea(scr->display, panel->selectionImg, panel->wheelView->window, + scr->copyGC, 0, 0, 4, 4, panel->colx -2, panel->coly -2); } static void @@ -1877,23 +2069,32 @@ wheelHandleActionEvents(XEvent *event, void *data) switch (event->type) { case ButtonPress: - if (getPickerPart(panel, event->xbutton.x, event->xbutton.y) == COLORWHEEL_PART) { + if (getPickerPart(panel, event->xbutton.x, event->xbutton.y) == + COLORWHEEL_PART) { panel->flags.dragging = 1; - wheelPositionSelection(panel, event->xbutton.x, event->xbutton.y); + wheelPositionSelection(panel, event->xbutton.x, + event->xbutton.y); } break; case ButtonRelease: panel->flags.dragging = 0; + if (!panel->flags.continuous) { + if (panel->action) + (*panel->action)(panel->action, panel->clientData); + } break; case MotionNotify: if (panel->flags.dragging) { - if (getPickerPart(panel, event->xmotion.x, event->xmotion.y) == COLORWHEEL_PART) { - wheelPositionSelection(panel, event->xmotion.x, event->xmotion.y); + if (getPickerPart(panel, event->xmotion.x, event->xmotion.y) == + COLORWHEEL_PART) { + wheelPositionSelection(panel, event->xmotion.x, + event->xmotion.y); } else - wheelPositionSelectionOutBounds(panel, event->xmotion.x, event->xmotion.y); + wheelPositionSelectionOutBounds(panel, event->xmotion.x, + event->xmotion.y); } break; } @@ -1910,7 +2111,9 @@ getPickerPart(W_ColorPanel *panel, int x, int y) ly = y; if (panel->mode == WMWheelModeColorPanel) { - if ((lx >= 2) && (lx <= 2+colorWheelSize) && (ly >= 2) && (ly <= 2+colorWheelSize)) { + if ((lx >= 2) && (lx <= 2+colorWheelSize) && (ly >= 2) && + (ly <= 2+colorWheelSize)) { + ofs = ly*panel->wheelMtrx->width+lx; if (wheelInsideColorWheel(panel, ofs)) @@ -1919,7 +2122,8 @@ getPickerPart(W_ColorPanel *panel, int x, int y) } if (panel->mode == WMCustomPaletteModeColorPanel) { - if ((lx >= 2) && (lx < customPaletteWidth-2) && (ly >= 2) && (ly < customPaletteHeight-2)) { + if ((lx >= 2) && (lx < customPaletteWidth-2) && (ly >= 2) && + (ly < customPaletteHeight-2)) { return CUSTOMPALETTE_PART; } } @@ -1963,9 +2167,12 @@ wheelBrightnessSliderCallback(WMWidget *w, void *data) panel->color = cur_rgb; } else { - panel->color.red = panel->wheelMtrx->values[ panel->wheelMtrx->data[0][ofs] ]; - panel->color.green = panel->wheelMtrx->values[ panel->wheelMtrx->data[1][ofs] ]; - panel->color.blue = panel->wheelMtrx->values[ panel->wheelMtrx->data[2][ofs] ]; + panel->color.red = panel->wheelMtrx->values[ + panel->wheelMtrx->data[0][ofs] ]; + panel->color.green = panel->wheelMtrx->values[ + panel->wheelMtrx->data[1][ofs] ]; + panel->color.blue = panel->wheelMtrx->values[ + panel->wheelMtrx->data[2][ofs] ]; } wheelRender(panel); @@ -1979,14 +2186,16 @@ wheelUpdateSelection(W_ColorPanel *panel) { W_Screen *scr = WMWidgetScreen(panel->win); - WMSetColorPanelColor(panel, panel->color); + updateSwatch(panel, panel->color); panel->lastChanged = WMWheelModeColorPanel; /* Redraw color selector (and make a backup of the part it will cover) */ - XCopyArea(scr->display, panel->wheelImg, panel->selectionBackImg, scr->copyGC, - panel->colx -2, panel->coly -2, 4, 4, 0, 0); /* "-2" is correction for hotspot location */ - XCopyArea(scr->display, panel->selectionImg, panel->wheelView->window, scr->copyGC, - 0, 0, 4, 4, panel->colx -2, panel->coly -2); /* see above */ + XCopyArea(scr->display, panel->wheelImg, panel->selectionBackImg, + scr->copyGC, panel->colx -2, panel->coly -2, 4, 4, 0, 0); + /* "-2" is correction for hotspot location */ + XCopyArea(scr->display, panel->selectionImg, panel->wheelView->window, + scr->copyGC, 0, 0, 4, 4, panel->colx -2, panel->coly -2); + /* see above */ } static void @@ -1994,8 +2203,9 @@ wheelUndrawSelection(W_ColorPanel *panel) { W_Screen *scr = WMWidgetScreen(panel->win); - XCopyArea(scr->display, panel->selectionBackImg, panel->wheelView->window, scr->copyGC, - 0, 0, 4, 4, panel->colx -2, panel->coly -2); /* see above */ + XCopyArea(scr->display, panel->selectionBackImg, panel->wheelView->window, + scr->copyGC, 0, 0, 4, 4, panel->colx -2, panel->coly -2); + /* see above */ } static void @@ -2004,9 +2214,12 @@ wheelPositionSelection(W_ColorPanel *panel, int x, int y) unsigned long ofs = (y * panel->wheelMtrx->width)+ x; - panel->color.red = panel->wheelMtrx->values[ panel->wheelMtrx->data[0][ofs] ]; - panel->color.green = panel->wheelMtrx->values[ panel->wheelMtrx->data[1][ofs] ]; - panel->color.blue = panel->wheelMtrx->values[ panel->wheelMtrx->data[2][ofs] ]; + panel->color.red = panel->wheelMtrx->values[ + panel->wheelMtrx->data[0][ofs] ]; + panel->color.green = panel->wheelMtrx->values[ + panel->wheelMtrx->data[1][ofs] ]; + panel->color.blue = panel->wheelMtrx->values[ + panel->wheelMtrx->data[2][ofs] ]; wheelUndrawSelection(panel); @@ -2054,8 +2267,11 @@ wheelPositionSelectionOutBounds(W_ColorPanel *panel, int x, int y) wheelUndrawSelection(panel); - panel->colx = 2 + rint((colorWheelSize * (1.0 + cos( cur_hsv.hue*M_PI/180))) /2.0); /* "+2" because of "colorWheelSize + 4" */ - panel->coly = 2 + rint((colorWheelSize * (1.0 + sin(-cur_hsv.hue*M_PI/180))) /2.0); + panel->colx = 2 + rint((colorWheelSize * (1.0 + + cos( cur_hsv.hue*M_PI/180))) /2.0); + /* "+2" because of "colorWheelSize + 4" */ + panel->coly = 2 + rint((colorWheelSize * (1.0 + + sin(-cur_hsv.hue*M_PI/180))) /2.0); wheelUpdateSelection(panel); wheelUpdateBrightnessGradientFromHSV(panel, cur_hsv); @@ -2098,7 +2314,8 @@ wheelUpdateBrightnessGradient(W_ColorPanel *panel, RColor topColor) to.red = to.green = to.blue = 0; sliderImg = RRenderGradient(16, 153, &topColor, &to, RGRD_VERTICAL); - sliderPxmp = WMCreatePixmapFromRImage(WMWidgetScreen(panel->win), sliderImg, 0); + sliderPxmp = WMCreatePixmapFromRImage(WMWidgetScreen(panel->win), + sliderImg, 0); RDestroyImage(sliderImg); WMSetSliderImage(panel->wheelBrightnessS, sliderPxmp); WMReleasePixmap(sliderPxmp); @@ -2122,7 +2339,7 @@ grayBrightnessSliderCallback(WMWidget *w, void *data) WMSetTextFieldText(panel->grayBrightnessT, tmp); color.red = color.green = color.blue = rint(2.55*value); - WMSetColorPanelColor(panel, color); + updateSwatch(panel, color); panel->lastChanged = WMGrayModeColorPanel; } @@ -2150,12 +2367,13 @@ grayPresetButtonCallback(WMWidget *w, void *data) WMSetSliderValue(panel->grayBrightnessS, rint(100.0*i/6.0)); - WMSetColorPanelColor(panel, color); + updateSwatch(panel, color); panel->lastChanged = WMGrayModeColorPanel; } static void -grayBrightnessTextFieldCallback(void *observerData, WMNotification *notification) +grayBrightnessTextFieldCallback(void *observerData, + WMNotification *notification) { RColor color; char tmp[4]; @@ -2173,7 +2391,7 @@ grayBrightnessTextFieldCallback(void *observerData, WMNotification *notification WMSetSliderValue(panel->grayBrightnessS, value); color.red = color.green = color.blue = rint(255.0*value/100.0); - WMSetColorPanelColor(panel, color); + updateSwatch(panel, color); panel->lastChanged = WMGrayModeColorPanel; } @@ -2203,7 +2421,7 @@ rgbSliderCallback(WMWidget *w, void *data) color.green = value[1]; color.blue = value[2]; - WMSetColorPanelColor(panel, color); + updateSwatch(panel, color); panel->lastChanged = WMRGBModeColorPanel; } @@ -2242,7 +2460,7 @@ rgbTextFieldCallback(void *observerData, WMNotification *notification) color.green = value[1]; color.blue = value[2]; - WMSetColorPanelColor(panel, color); + updateSwatch(panel, color); panel->lastChanged = WMRGBModeColorPanel; } @@ -2273,10 +2491,10 @@ cmykSliderCallback(WMWidget *w, void *data) WMSetTextFieldText(panel->cmykBlackT, tmp); color.red = rint((255.0 - (value[0] * 2.55)) * (1.0 - (value[3] / 100.0))); - color.green = rint((255.0 - (value[1] * 2.55)) * (1.0 - (value[3] / 100.0))); - color.blue = rint((255.0 - (value[2] * 2.55)) * (1.0 - (value[3] / 100.0))); + color.green = rint((255.0 - (value[1] * 2.55)) * (1.0 - (value[3]/100.0))); + color.blue = rint((255.0 - (value[2] * 2.55)) * (1.0 - (value[3] /100.0))); - WMSetColorPanelColor(panel, color); + updateSwatch(panel, color); panel->lastChanged = WMCMYKModeColorPanel; } @@ -2316,10 +2534,10 @@ cmykTextFieldCallback(void *observerData, WMNotification *notification) WMSetSliderValue(panel->cmykBlackS, value[3]); color.red = rint((255.0 - (value[0] * 2.55)) * (1.0 - (value[3] / 100.0))); - color.green = rint((255.0 - (value[1] * 2.55)) * (1.0 - (value[3] / 100.0))); - color.blue = rint((255.0 - (value[2] * 2.55)) * (1.0 - (value[3] / 100.0))); + color.green = rint((255.0 - (value[1] * 2.55)) * (1.0 - (value[3]/100.0))); + color.blue = rint((255.0 - (value[2] * 2.55)) * (1.0 - (value[3] /100.0))); - WMSetColorPanelColor(panel, color); + updateSwatch(panel, color); panel->lastChanged = WMCMYKModeColorPanel; } @@ -2352,7 +2570,7 @@ hsbSliderCallback(WMWidget *w, void *data) RHSVtoRGB(&panel->hsvcolor, &color); panel->lastChanged = WMHSBModeColorPanel; - WMSetColorPanelColor(panel, color); + updateSwatch(panel, color); if (w != panel->hsbBrightnessS) hsbUpdateBrightnessGradient(panel); @@ -2405,7 +2623,7 @@ hsbTextFieldCallback(void *observerData, WMNotification *notification) RHSVtoRGB(&panel->hsvcolor, &color); panel->lastChanged = WMHSBModeColorPanel; - WMSetColorPanelColor(panel, color); + updateSwatch(panel, color); hsbUpdateBrightnessGradient(panel); hsbUpdateSaturationGradient(panel); @@ -2431,7 +2649,9 @@ hsbUpdateBrightnessGradient(W_ColorPanel *panel) sliderImg = RRenderGradient(141, 16, &from, &to, RGRD_HORIZONTAL); sliderPxmp = WMCreatePixmapFromRImage(scr, sliderImg, 0); RDestroyImage(sliderImg); - W_PaintText(W_VIEW(panel->hsbBrightnessS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scr->white), False, "Brightness", strlen("Brightness")); + W_PaintText(W_VIEW(panel->hsbBrightnessS), sliderPxmp->pixmap, + panel->font12, 2, 0, 100, WALeft, WMColorGC(scr->white), False, + "Brightness", strlen("Brightness")); WMSetSliderImage(panel->hsbBrightnessS, sliderPxmp); WMReleasePixmap(sliderPxmp); } @@ -2457,9 +2677,13 @@ hsbUpdateSaturationGradient(W_ColorPanel *panel) sliderPxmp = WMCreatePixmapFromRImage(scr, sliderImg, 0); RDestroyImage(sliderImg); if (hsvcolor.value < 128) - W_PaintText(W_VIEW(panel->hsbSaturationS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scr->white), False, "Saturation", strlen("Saturation")); + W_PaintText(W_VIEW(panel->hsbSaturationS), sliderPxmp->pixmap, + panel->font12, 2, 0, 100, WALeft, WMColorGC(scr->white), False, + "Saturation", strlen("Saturation")); else - W_PaintText(W_VIEW(panel->hsbSaturationS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scr->black), False, "Saturation", strlen("Saturation")); + W_PaintText(W_VIEW(panel->hsbSaturationS), sliderPxmp->pixmap, + panel->font12, 2, 0, 100, WALeft, WMColorGC(scr->black), False, + "Saturation", strlen("Saturation")); WMSetSliderImage(panel->hsbSaturationS, sliderPxmp); WMReleasePixmap(sliderPxmp); @@ -2489,9 +2713,13 @@ hsbUpdateHueGradient(W_ColorPanel *panel) sliderPxmp = WMCreatePixmapFromRImage(scr, sliderImg, 0); RDestroyImage(sliderImg); if (hsvcolor.value < 128) - W_PaintText(W_VIEW(panel->hsbHueS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scr->white), False, "Hue", strlen("Hue")); + W_PaintText(W_VIEW(panel->hsbHueS), sliderPxmp->pixmap, + panel->font12, 2, 0, 100, WALeft, WMColorGC(scr->white), False, + "Hue", strlen("Hue")); else - W_PaintText(W_VIEW(panel->hsbHueS), sliderPxmp->pixmap, panel->font12, 2, 0, 100, WALeft, W_GC(scr->black), False, "Hue", strlen("Hue")); + W_PaintText(W_VIEW(panel->hsbHueS), sliderPxmp->pixmap, + panel->font12, 2, 0, 100, WALeft, WMColorGC(scr->black), False, + "Hue", strlen("Hue")); WMSetSliderImage(panel->hsbHueS, sliderPxmp); WMReleasePixmap(sliderPxmp); @@ -2564,31 +2792,42 @@ customSetPalette(W_ColorPanel *panel) Pixmap image; int item; - image = XCreatePixmap(scr->display, W_DRAWABLE(scr), customPaletteWidth, customPaletteHeight, scr->depth); + image = XCreatePixmap(scr->display, W_DRAWABLE(scr), customPaletteWidth, + customPaletteHeight, scr->depth); - scaledImg = RScaleImage(panel->customPaletteImg, customPaletteWidth, customPaletteHeight); + scaledImg = RScaleImage(panel->customPaletteImg, customPaletteWidth, + customPaletteHeight); RConvertImage(scr->rcontext, scaledImg, &image); RDestroyImage(scaledImg); - XCopyArea(scr->display, image, panel->customPaletteContentView->window, scr->copyGC, 0, 0, customPaletteWidth, customPaletteHeight, 0, 0); + XCopyArea(scr->display, image, panel->customPaletteContentView->window, + scr->copyGC, 0, 0, customPaletteWidth, customPaletteHeight, 0, 0); - /* Check backimage existence. If it doesn't exist, allocate it and fill it */ + /* Check backimage exists. If it doesn't, allocate and fill it */ if (!panel->selectionBackImg) { - panel->selectionBackImg = XCreatePixmap(scr->display, panel->customPaletteContentView->window, 4, 4, scr->depth); + panel->selectionBackImg = XCreatePixmap(scr->display, + panel->customPaletteContentView->window, 4, 4, scr->depth); } - XCopyArea(scr->display, image, panel->selectionBackImg, scr->copyGC, panel->palx-2, panel->paly-2, 4, 4, 0, 0); - XCopyArea(scr->display, panel->selectionImg, panel->customPaletteContentView->window, scr->copyGC, 0 , 0, 4, 4, panel->palx-2, panel->paly-2); + XCopyArea(scr->display, image, panel->selectionBackImg, scr->copyGC, + panel->palx-2, panel->paly-2, 4, 4, 0, 0); + XCopyArea(scr->display, panel->selectionImg, + panel->customPaletteContentView->window, scr->copyGC, 0 , 0, 4, 4, + panel->palx-2, panel->paly-2); XFreePixmap(scr->display, image); - panel->palXRatio = (float)(panel->customPaletteImg->width) / (float)(customPaletteWidth); - panel->palYRatio = (float)(panel->customPaletteImg->height) / (float)(customPaletteHeight); + panel->palXRatio = (float)(panel->customPaletteImg->width) / + (float)(customPaletteWidth); + panel->palYRatio = (float)(panel->customPaletteImg->height) / + (float)(customPaletteHeight); item = WMGetPopUpButtonSelectedItem (panel->customPaletteHistoryBtn); /* if palette != "Spectrum", we are allowed to rename and remove it */ - WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuRename, (item > 0) ); - WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuRemove, (item > 0) ); + WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuRename, + (item > 0) ); + WMSetPopUpButtonItemEnabled(panel->customPaletteMenuBtn, CPmenuRemove, + (item > 0) ); } @@ -2600,23 +2839,30 @@ customPalettePositionSelection(W_ColorPanel *panel, int x, int y) /* undraw selection */ - XCopyArea(scr->display, panel->selectionBackImg, panel->customPaletteContentView->window, scr->copyGC, 0, 0, 4, 4, panel->palx-2, panel->paly-2); + XCopyArea(scr->display, panel->selectionBackImg, + panel->customPaletteContentView->window, scr->copyGC, 0, 0, 4, 4, + panel->palx-2, panel->paly-2); panel->palx = x; panel->paly = y; - ofs = rint(x * panel->palXRatio) + rint(y * panel->palYRatio) * panel->customPaletteImg->width; + ofs = rint(x * panel->palXRatio) + rint(y * panel->palYRatio) * + panel->customPaletteImg->width; panel->color.red = panel->customPaletteImg->data[0][ofs]; panel->color.green = panel->customPaletteImg->data[1][ofs]; panel->color.blue = panel->customPaletteImg->data[2][ofs]; - WMSetColorPanelColor(panel, panel->color); + updateSwatch(panel, panel->color); panel->lastChanged = WMCustomPaletteModeColorPanel; /* Redraw color selector (and make a backup of the part it will cover) */ - XCopyArea(scr->display, panel->customPaletteContentView->window, panel->selectionBackImg, scr->copyGC, panel->palx-2, panel->paly-2, 4, 4, 0, 0); /* "-2" is correction for hotspot location */ - XCopyArea(scr->display, panel->selectionImg, panel->customPaletteContentView->window, scr->copyGC, 0, 0, 4, 4, panel->palx-2, panel->paly-2); /* see above */ + XCopyArea(scr->display, panel->customPaletteContentView->window, + panel->selectionBackImg, scr->copyGC, panel->palx-2, panel->paly-2, + 4, 4, 0, 0); /* "-2" is correction for hotspot location */ + XCopyArea(scr->display, panel->selectionImg, + panel->customPaletteContentView->window, scr->copyGC, 0, 0, 4, 4, + panel->palx-2, panel->paly-2); /* see above */ } @@ -2669,6 +2915,10 @@ customPaletteHandleActionEvents(XEvent *event, void *data) case ButtonRelease: panel->flags.dragging = 0; + if (!panel->flags.continuous) { + if (panel->action) + (*panel->action)(panel->action, panel->clientData); + } break; case MotionNotify: @@ -2733,7 +2983,7 @@ customPaletteMenuNewFromFile(W_ColorPanel *panel) WMSetFilePanelCanChooseFiles(browseP, 1); /* Get a filename */ - if (WMRunModalOpenPanelForDirectory(browseP, panel->win, spath, + if (WMRunModalFilePanelForDirectory(browseP, panel->win, spath, "Open Palette", RSupportedFileFormats()) ) { filepath = WMGetFilePanelFileName(browseP); @@ -2768,7 +3018,8 @@ customPaletteMenuNewFromFile(W_ColorPanel *panel) } free(tmp); - /* Copy the image to $(gnustepdir)/Library/Colors/ & Add the filename to the history menu */ + /* Copy image to $(gnustepdir)/Library/Colors/ & + * Add filename to history menu */ if (fetchFile (panel->configurationPath, filepath, filename) == 0) { /* filepath is a "local" path now the file has been copied */ @@ -2785,7 +3036,8 @@ customPaletteMenuNewFromFile(W_ColorPanel *panel) customSetPalette(panel); WMAddPopUpButtonItem(panel->customPaletteHistoryBtn, filename); - panel->currentPalette = WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn)-1; + panel->currentPalette = WMGetPopUpButtonNumberOfItems( + panel->customPaletteHistoryBtn)-1; WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, panel->currentPalette); @@ -2796,10 +3048,13 @@ customPaletteMenuNewFromFile(W_ColorPanel *panel) tmp = wstrappend(panel->configurationPath, filename); i = remove(tmp); /* Delete the file, it doesn't belong here */ - WMRunAlertPanel(scr, panel->win, "File Error", "Invalid file format !", "OK", NULL, NULL); + WMRunAlertPanel(scr, panel->win, "File Error", + "Invalid file format !", "OK", NULL, NULL); if (i != 0) { wsyserror("can't remove file %s", tmp); - WMRunAlertPanel(scr, panel->win, "File Error", "Couldn't remove file from Configuration Directory !", "OK", NULL, NULL); + WMRunAlertPanel(scr, panel->win, "File Error", + "Couldn't remove file from Configuration Directory !", + "OK", NULL, NULL); } free(tmp); } @@ -2840,22 +3095,27 @@ customPaletteMenuRename(W_ColorPanel *panel) fromPath = wstrappend(panel->configurationPath, fromName); toPath = wstrappend(panel->configurationPath, toName); - if (access (toPath, F_OK) == 0) { /* Careful, this palette exists already */ + if (access (toPath, F_OK) == 0) { + /* Careful, this palette exists already */ if (WMRunAlertPanel(scr, panel->win, "Warning", - "Palette already exists !\n\nOverwrite ?", "No", "Yes", NULL) == 1) { + "Palette already exists !\n\nOverwrite ?", "No", "Yes", + NULL) == 1) { /* "No" = 0, "Yes" = 1 */ - int items = WMGetPopUpButtonNumberOfItems(panel->customPaletteHistoryBtn); + int items = WMGetPopUpButtonNumberOfItems( + panel->customPaletteHistoryBtn); remove(toPath); /* Remove from History list too */ index = 1; - while ((index < items) && - (strcmp(WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, index), toName) != 0 )) + while ((index < items) && (strcmp(WMGetPopUpButtonItem( + panel->customPaletteHistoryBtn, index), + toName) != 0 )) index++; if (index < items) { - WMRemovePopUpButtonItem(panel->customPaletteHistoryBtn, index); + WMRemovePopUpButtonItem(panel->customPaletteHistoryBtn, + index); if (index < item) item--; } @@ -2873,7 +3133,8 @@ customPaletteMenuRename(W_ColorPanel *panel) wsyserror("Couldn't rename palette %s to %s\n", fromName, toName); else { WMRemovePopUpButtonItem(panel->customPaletteHistoryBtn, item); - WMInsertPopUpButtonItem(panel->customPaletteHistoryBtn, item, toName); + WMInsertPopUpButtonItem(panel->customPaletteHistoryBtn, item, + toName); WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, item); } @@ -2897,7 +3158,8 @@ customPaletteMenuRemove(W_ColorPanel *panel) tmp = wstrappend( "This will permanently remove the palette ", WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item )); - text = wstrappend( tmp, ".\n\nAre you sure you want to remove this palette ?"); + text = wstrappend( tmp, ".\n\nAre you sure you want to remove this" + " palette ?"); free(tmp); choice = WMRunAlertPanel(scr, panel->win, NULL, text, "Yes", "No", NULL); @@ -2913,7 +3175,9 @@ customPaletteMenuRemove(W_ColorPanel *panel) wsyserror("Couldn't remove palette %s\n", tmp); free(tmp); - WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, item-1); /* item -1 always exists */ + /* item -1 always exists */ + WMSetPopUpButtonSelectedItem(panel->customPaletteHistoryBtn, item-1); + customPaletteHistoryCallback(panel->customPaletteHistoryBtn, panel); customSetPalette(panel); @@ -2939,9 +3203,11 @@ customPaletteHistoryCallback(WMWidget *w, void *data) customRenderSpectrum(panel); else { /* Load file from configpath */ - filename = wstrappend( panel->configurationPath, WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item) ); + filename = wstrappend( panel->configurationPath, + WMGetPopUpButtonItem(panel->customPaletteHistoryBtn, item) ); - /* XXX To do: Check existence of file and remove it from the history if it doesn't exist */ + /* XXX To do: Check existence of file and remove it from the history + * if it doesn't exist */ tmp = RLoadImage(scr->rcontext, filename, 0); if (tmp) { @@ -2973,8 +3239,10 @@ wheelInit(W_ColorPanel *panel) WMSetSliderValue(panel->wheelBrightnessS, 255-cur_hsv.value); wheelUpdateBrightnessGradientFromHSV(panel, cur_hsv); - panel->colx = 2 + rint((colorWheelSize / 2.0) * (1 + (cur_hsv.saturation/255.0) * cos( cur_hsv.hue*M_PI/180.0))); - panel->coly = 2 + rint((colorWheelSize / 2.0) * (1 + (cur_hsv.saturation/255.0) * sin(-cur_hsv.hue*M_PI/180.0))); + panel->colx = 2 + rint((colorWheelSize / 2.0) * (1 + ( + cur_hsv.saturation/255.0) * cos( cur_hsv.hue*M_PI/180.0))); + panel->coly = 2 + rint((colorWheelSize / 2.0) * (1 + ( + cur_hsv.saturation/255.0) * sin(-cur_hsv.hue*M_PI/180.0))); for (i = 0; i < 256; i++) { /* We divide by 128 in advance, and check whether that number divides @@ -3074,7 +3342,8 @@ hsbInit(W_ColorPanel *panel) /************************* ColorList Panel Functions **********************/ static void -colorListPaintItem(WMList *lPtr, int index, Drawable d, char *text, int state, WMRect *rect) +colorListPaintItem(WMList *lPtr, int index, Drawable d, char *text, + int state, WMRect *rect) { int width, height, x, y; RColor color = *((RColor *)WMGetListItem(lPtr, index)->clientData); @@ -3095,13 +3364,15 @@ colorListPaintItem(WMList *lPtr, int index, Drawable d, char *text, int state, W else XClearArea(dpy, d, x +15, y, width -15, height, False); - fillColor = WMCreateRGBColor(scr, color.red*256, color.green*256, color.blue*256, False); + fillColor = WMCreateRGBColor(scr, color.red*256, color.green*256, + color.blue*256, False); WMSetColorInGC(fillColor, WMColorGC(fillColor)); WMPaintColorSwatch(fillColor, d, x, y, 15, 15); WMReleaseColor(fillColor); - WMDrawString(scr, d, WMColorGC(black), panel->font12, x+18, y, text, strlen(text)); + WMDrawString(scr, d, WMColorGC(black), panel->font12, x+18, y, text, + strlen(text)); WMReleaseColor(white); WMReleaseColor(black); @@ -3115,7 +3386,7 @@ colorListSelect(WMWidget *w, void *data) RColor color = *((RColor *)WMGetListSelectedItem(w)->clientData); panel->lastChanged = WMColorListModeColorPanel; - WMSetColorPanelColor(panel, color); + updateSwatch(panel, color); } @@ -3178,7 +3449,8 @@ fetchFile(char *toPath, char *srcFile, char *destFile) } tmp = wstrappend(toPath, destFile); - if ((dest = open( tmp, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)) == 0) { + if ((dest = open( tmp, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)) + == 0) { wsyserror("Could not create %s", tmp); free(tmp); return -1; @@ -3208,12 +3480,15 @@ generateNewFilename(char *curName) char *ptr; char *newName; + + assert(curName); + ptr = curName; - while ((ptr = strrchr(ptr, '{')) && !(sscanf(ptr, "{%i}%c", &n, &c)==1)) { - ptr++; - } - if (!ptr) + if ( + ((ptr = strrchr(ptr, '{')) == 0) || + sscanf(ptr, "{%i}%c", &n, &c) != 1 + ) return wstrappend(curName, " {1}"); baseLen = ptr - curName -1; diff --git a/WPrefs.app/po/Makefile.am b/WPrefs.app/po/Makefile.am index 633ebed5..5c856366 100644 --- a/WPrefs.app/po/Makefile.am +++ b/WPrefs.app/po/Makefile.am @@ -7,6 +7,9 @@ CLEANFILES = $(CATALOGS) EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po zh_TW.Big5.po es.po POTFILES = \ + $(top_builddir)/WPrefs.app/main.c \ + $(top_builddir)/WPrefs.app/WPrefs.c \ + $(top_builddir)/WPrefs.app/Appearance.c \ $(top_builddir)/WPrefs.app/Configurations.c \ $(top_builddir)/WPrefs.app/Expert.c \ $(top_builddir)/WPrefs.app/Focus.c \ @@ -14,19 +17,20 @@ POTFILES = \ $(top_builddir)/WPrefs.app/KeyboardSettings.c \ $(top_builddir)/WPrefs.app/KeyboardShortcuts.c \ $(top_builddir)/WPrefs.app/Menu.c \ - $(top_builddir)/WPrefs.app/MenuGuru.c \ $(top_builddir)/WPrefs.app/MenuPreferences.c \ $(top_builddir)/WPrefs.app/MouseSettings.c \ + $(top_builddir)/WPrefs.app/NoMenuAlert.c \ $(top_builddir)/WPrefs.app/Paths.c \ $(top_builddir)/WPrefs.app/Preferences.c \ $(top_builddir)/WPrefs.app/Text.c \ - $(top_builddir)/WPrefs.app/TextureAndColor.c \ + $(top_builddir)/WPrefs.app/TexturePanel.c \ $(top_builddir)/WPrefs.app/Themes.c \ - $(top_builddir)/WPrefs.app/WPrefs.c \ $(top_builddir)/WPrefs.app/WindowHandling.c \ $(top_builddir)/WPrefs.app/Workspace.c \ - $(top_builddir)/WPrefs.app/main.c \ - $(top_builddir)/WPrefs.app/xmodifier.c + $(top_builddir)/WPrefs.app/double.c \ + $(top_builddir)/WPrefs.app/editmenu.c \ + $(top_builddir)/WPrefs.app/MenuGuru.c \ + $(top_builddir)/WPrefs.app/xmodifier.c SUFFIXES = .po .mo diff --git a/WPrefs.app/po/Makefile.in b/WPrefs.app/po/Makefile.in index d40cc2a7..fa2909a4 100644 --- a/WPrefs.app/po/Makefile.in +++ b/WPrefs.app/po/Makefile.in @@ -96,7 +96,7 @@ CLEANFILES = $(CATALOGS) EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po zh_TW.Big5.po es.po -POTFILES = $(top_builddir)/WPrefs.app/Configurations.c $(top_builddir)/WPrefs.app/Expert.c $(top_builddir)/WPrefs.app/Focus.c $(top_builddir)/WPrefs.app/Icons.c $(top_builddir)/WPrefs.app/KeyboardSettings.c $(top_builddir)/WPrefs.app/KeyboardShortcuts.c $(top_builddir)/WPrefs.app/Menu.c $(top_builddir)/WPrefs.app/MenuGuru.c $(top_builddir)/WPrefs.app/MenuPreferences.c $(top_builddir)/WPrefs.app/MouseSettings.c $(top_builddir)/WPrefs.app/Paths.c $(top_builddir)/WPrefs.app/Preferences.c $(top_builddir)/WPrefs.app/Text.c $(top_builddir)/WPrefs.app/TextureAndColor.c $(top_builddir)/WPrefs.app/Themes.c $(top_builddir)/WPrefs.app/WPrefs.c $(top_builddir)/WPrefs.app/WindowHandling.c $(top_builddir)/WPrefs.app/Workspace.c $(top_builddir)/WPrefs.app/main.c $(top_builddir)/WPrefs.app/xmodifier.c +POTFILES = $(top_builddir)/WPrefs.app/main.c $(top_builddir)/WPrefs.app/WPrefs.c $(top_builddir)/WPrefs.app/Appearance.c $(top_builddir)/WPrefs.app/Configurations.c $(top_builddir)/WPrefs.app/Expert.c $(top_builddir)/WPrefs.app/Focus.c $(top_builddir)/WPrefs.app/Icons.c $(top_builddir)/WPrefs.app/KeyboardSettings.c $(top_builddir)/WPrefs.app/KeyboardShortcuts.c $(top_builddir)/WPrefs.app/Menu.c $(top_builddir)/WPrefs.app/MenuPreferences.c $(top_builddir)/WPrefs.app/MouseSettings.c $(top_builddir)/WPrefs.app/NoMenuAlert.c $(top_builddir)/WPrefs.app/Paths.c $(top_builddir)/WPrefs.app/Preferences.c $(top_builddir)/WPrefs.app/Text.c $(top_builddir)/WPrefs.app/TexturePanel.c $(top_builddir)/WPrefs.app/Themes.c $(top_builddir)/WPrefs.app/WindowHandling.c $(top_builddir)/WPrefs.app/Workspace.c $(top_builddir)/WPrefs.app/double.c $(top_builddir)/WPrefs.app/editmenu.c $(top_builddir)/WPrefs.app/MenuGuru.c $(top_builddir)/WPrefs.app/xmodifier.c SUFFIXES = .po .mo diff --git a/WPrefs.app/po/README b/WPrefs.app/po/README index b553c8ed..fbd1a8e9 100644 --- a/WPrefs.app/po/README +++ b/WPrefs.app/po/README @@ -4,7 +4,7 @@ in the top of the WindowMaker source tree. File Language Current Maintainer ------------------------------------------------------------------------------ -pt.po Portuguese Alfredo K. Kojima +pt.po Portuguese Eliphas Levy Theodoro hr.po Croatian Toni Biliæ fr.po French Bastien NOCERA ko.po Korean Byeong-Chan, Kim diff --git a/WPrefs.app/po/pt.po b/WPrefs.app/po/pt.po index 76f131ce..077bf8b0 100644 --- a/WPrefs.app/po/pt.po +++ b/WPrefs.app/po/pt.po @@ -1,110 +1,156 @@ # # Mensagens do WPrefs.app traduzidas p/ Português # +# Update History: +# Alfredo K. Kojima +# Eliphas Levy Theodoro # -# + msgid "" msgstr "" -"Date: 1998-08-24 03:51:26-0300\n" -"From: Alfredo K. Kojima,,,, \n" +"Project-Id-Version: 0.52.0\n" +"POT-Creation-Date: 1998-08-24 03:51:26-0300\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=\n" -"Xgettext-Options: --default-domain=WPrefs --add-comments --keyword=_\n" -"Files: ../../WPrefs/Configurations.c ../../WPrefs/Expert.c ../../WPrefs/Focus.c ../../WPrefs/KeyboardSettings.c ../../WPrefs/KeyboardShortcuts.c ../../WPrefs/Menu.c ../../WPrefs/MenuGuru.c ../../WPrefs/MenuPreferences.c ../../WPrefs/MouseSettings.c ../../WPrefs/Paths.c ../../WPrefs/Preferences.c ../../WPrefs/Text.c ../../WPrefs/TextureAndColor.c ../../WPrefs/WPrefs.c ../../WPrefs/WindowHandling.c ../../WPrefs/Workspace.c ../../WPrefs/main.c ../../WPrefs/xmodifier.c\n" +"Content-Transfer-Encoding: 8-bit\n" +"MIME-Version: 1.0\n" +"Date: 1998-08-24 03:51:26-0300\n" +"PO-Revision-Date: 1999-04-01 18:16-0300\n" +"From: Eliphas Levy Theodoro \n" -#: ../../WPrefs/Configurations.c:141 ../../WPrefs/Configurations.c:147 ../../WPrefs/MouseSettings.c:456 ../../WPrefs/WindowHandling.c:274 ../../WPrefs/WindowHandling.c:286 ../../WPrefs/Workspace.c:78 ../../WPrefs/Workspace.c:84 +"Xgettext-Options: --default-domain=WPrefs --add-comments --keyword=_\n" +"Files: ../../WPrefs/Configurations.c ../../WPrefs/Expert.c " +"../../WPrefs/Focus.c ../../WPrefs/KeyboardSettings.c " +"../../WPrefs/KeyboardShortcuts.c ../../WPrefs/Menu.c ../../WPrefs/MenuGuru.c " +"../../WPrefs/MenuPreferences.c ../../WPrefs/MouseSettings.c " +"../../WPrefs/Paths.c ../../WPrefs/Preferences.c ../../WPrefs/Text.c " +"../../WPrefs/TextureAndColor.c ../../WPrefs/WPrefs.c " +"../../WPrefs/WindowHandling.c ../../WPrefs/Workspace.c ../../WPrefs/main.c " +"../../WPrefs/xmodifier.c\n" + +#: ../../WPrefs.app/Configurations.c:142 ../../WPrefs.app/Configurations.c:148 +#: ../../WPrefs.app/MouseSettings.c:547 ../../WPrefs.app/WindowHandling.c:311 +#: ../../WPrefs.app/WindowHandling.c:323 ../../WPrefs.app/Workspace.c:71 +#: ../../WPrefs.app/Workspace.c:77 +#, c-format msgid "could not load icon %s" msgstr "ícone %s não pôde ser carregado" -#: ../../WPrefs/Configurations.c:154 ../../WPrefs/Workspace.c:91 +#: ../../WPrefs.app/Configurations.c:156 ../../WPrefs.app/Workspace.c:85 +#, c-format msgid "could not process icon %s:" msgstr "ícone %s não pôde ser processado:" -#: ../../WPrefs/Configurations.c:179 ../../WPrefs/Workspace.c:158 +#: ../../WPrefs.app/Configurations.c:181 ../../WPrefs.app/Workspace.c:124 +#, c-format msgid "could not load image file %s" msgstr "arquivo de imagem %s não pôde ser carregado" -#: ../../WPrefs/Configurations.c:193 +#: ../../WPrefs.app/Configurations.c:195 msgid "Icon Slide Speed" msgstr "Velocidade dos Ícones " -#: ../../WPrefs/Configurations.c:199 +#: ../../WPrefs.app/Configurations.c:201 msgid "Shade Animation Speed" msgstr "Velocidade da Animação do Shade" -#: ../../WPrefs/Configurations.c:232 ../../WPrefs/Configurations.c:244 ../../WPrefs/Focus.c:310 ../../WPrefs/Focus.c:321 ../../WPrefs/MenuPreferences.c:135 ../../WPrefs/MenuPreferences.c:146 ../../WPrefs/MenuPreferences.c:174 ../../WPrefs/MenuPreferences.c:189 ../../WPrefs/MouseSettings.c:484 ../../WPrefs/MouseSettings.c:495 ../../WPrefs/MouseSettings.c:550 ../../WPrefs/MouseSettings.c:561 ../../WPrefs/MouseSettings.c:597 ../../WPrefs/MouseSettings.c:612 ../../WPrefs/MouseSettings.c:628 ../../WPrefs/WPrefs.c:393 ../../WPrefs/WPrefs.c:411 +#: ../../WPrefs.app/Configurations.c:234 ../../WPrefs.app/Configurations.c:246 +#: ../../WPrefs.app/Focus.c:314 ../../WPrefs.app/Focus.c:325 +#: ../../WPrefs.app/MenuPreferences.c:135 +#: ../../WPrefs.app/MenuPreferences.c:146 +#: ../../WPrefs.app/MenuPreferences.c:174 +#: ../../WPrefs.app/MenuPreferences.c:189 ../../WPrefs.app/MouseSettings.c:575 +#: ../../WPrefs.app/MouseSettings.c:586 ../../WPrefs.app/MouseSettings.c:650 +#: ../../WPrefs.app/MouseSettings.c:661 ../../WPrefs.app/MouseSettings.c:717 +#: ../../WPrefs.app/MouseSettings.c:732 ../../WPrefs.app/MouseSettings.c:748 +#: ../../WPrefs.app/WPrefs.c:411 ../../WPrefs.app/WPrefs.c:428 +#, c-format msgid "could not load icon file %s" msgstr "arquivo de ícone %s não pôde ser carregado" -#: ../../WPrefs/Configurations.c:260 +#: ../../WPrefs.app/Configurations.c:262 msgid "Titlebar Style" msgstr "Estilo da Barra de Título" -#: ../../WPrefs/Configurations.c:297 +#: ../../WPrefs.app/Configurations.c:299 msgid "Animations and Sound" msgstr "Som e Animações" -#: ../../WPrefs/Configurations.c:303 +#: ../../WPrefs.app/Configurations.c:305 msgid "Animations" msgstr "Animações" -#: ../../WPrefs/Configurations.c:319 +#: ../../WPrefs.app/Configurations.c:321 msgid "Superfluous" msgstr "Enfeite" -#: ../../WPrefs/Configurations.c:335 +#: ../../WPrefs.app/Configurations.c:337 msgid "Sounds" msgstr "Sons" -#: ../../WPrefs/Configurations.c:352 +#: ../../WPrefs.app/Configurations.c:354 msgid "Note: sound requires a module distributed separately" -msgstr "Nota: é necessário um módulo distribuído separadamante para se ter sons" +msgstr "" +"Nota: é necessário um módulo distribuído separadamante para se ter sons" -#: ../../WPrefs/Configurations.c:362 +#: ../../WPrefs.app/Configurations.c:364 msgid "Dithering colormap for 8bpp" msgstr "No.de cores para dithering em 8bpp" -#: ../../WPrefs/Configurations.c:367 +#: ../../WPrefs.app/Configurations.c:369 msgid "Disable dithering in any visual/depth" msgstr "Desabilitar dithering" -#: ../../WPrefs/Configurations.c:388 +#: ../../WPrefs.app/Configurations.c:390 msgid "More colors for applications" msgstr "Mais cores para applicações" -#: ../../WPrefs/Configurations.c:395 +#: ../../WPrefs.app/Configurations.c:397 msgid "More colors for WindowMaker" msgstr "Mais cores para o WindowMaker" -#: ../../WPrefs/Configurations.c:448 +#: ../../WPrefs.app/Configurations.c:450 msgid "Other Configurations" msgstr "Outras Configurações" -#: ../../WPrefs/Expert.c:69 -msgid "Do not set non-WindowMaker specific parameters (do not use xset)" -msgstr "Não configurar parâmetros não pertencentes ao WindowMaker (não usar xset)" +#: ../../WPrefs.app/Expert.c:72 +msgid "" +"Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME." +msgstr "" +"Desabilita minijanelas (ícones para janelas minimizadas)." -#: ../../WPrefs/Expert.c:70 +#: ../../WPrefs.app/Expert.c:73 +msgid "Do not set non-WindowMaker specific parameters (do not use xset)" +msgstr "" +"Não configurar parâmetros não pertencentes ao WindowMaker (não usar xset)" + +#: ../../WPrefs.app/Expert.c:74 msgid "Automatically save session when exiting WindowMaker" msgstr "Salvar sessão automaticamente ao sair do WindowMaker" -#: ../../WPrefs/Expert.c:71 -msgid "Use SaveUnders in icons, menus and other objects" -msgstr "Usar SaveUnders nos ícones, menus e outros objetos" +#: ../../WPrefs.app/Expert.c:75 +msgid "Use SaveUnder in window frames, icons, menus and other objects" +msgstr "Usar SaveUnder nos ícones, menus e outros objetos" -#: ../../WPrefs/Expert.c:100 +#: ../../WPrefs.app/Expert.c:76 +msgid "Disable cycling color highlighting of icons." +msgstr "Desabilitar ciclagem de cores nos ícones." + +#: ../../WPrefs.app/Expert.c:108 msgid "Expert User Preferences" msgstr "Preferências para Usuários Avançados" -#: ../../WPrefs/Focus.c:79 +#: ../../WPrefs.app/Focus.c:81 +#, c-format msgid "bad option value %s for option FocusMode. Using default Manual" msgstr "valor %s inválido para opção FocusMode. Usando default Manual" -#: ../../WPrefs/Focus.c:92 -msgid "bad option value %s for option ColormapMode. Using default Manual" -msgstr "value %s inválido para opção ColormapMode. Usando default Manual" +#: ../../WPrefs.app/Focus.c:96 +#, c-format +msgid "bad option value %s for option ColormapMode. Using default Auto" +msgstr "valor %s inválido para opção ColormapMode. Usando default Auto" -#: ../../WPrefs/Focus.c:190 +#: ../../WPrefs.app/Focus.c:194 msgid "" "Click on the window to set\n" "keyboard input focus." @@ -112,7 +158,7 @@ msgstr "" "Clicar na janelar para mudar\n" "o foco do teclado." -#: ../../WPrefs/Focus.c:194 +#: ../../WPrefs.app/Focus.c:198 msgid "" "Set keyboard input focus to\n" "the window under the mouse pointer,\n" @@ -122,7 +168,7 @@ msgstr "" "janela sob o cursor do mouse,\n" "inclusive a janela raiz." -#: ../../WPrefs/Focus.c:199 +#: ../../WPrefs.app/Focus.c:203 msgid "" "Set keyboard input focus to\n" "the window under the mouse pointer,\n" @@ -132,675 +178,839 @@ msgstr "" "janela sob o cursor do mouse,\n" "exceto a janela raiz." -#: ../../WPrefs/Focus.c:243 +#: ../../WPrefs.app/Focus.c:247 msgid "Input Focus Mode" msgstr "Modo de Foco do Teclado" -#: ../../WPrefs/Focus.c:248 +#: ../../WPrefs.app/Focus.c:252 msgid "Click window to focus" msgstr "Clicar na janela para focar" -#: ../../WPrefs/Focus.c:249 +#: ../../WPrefs.app/Focus.c:253 msgid "Focus follows mouse" msgstr "\"Focus follows mouse\"" -#: ../../WPrefs/Focus.c:250 +#: ../../WPrefs.app/Focus.c:254 msgid "\"Sloppy\" focus" msgstr "\"Sloppy focus\"" -#: ../../WPrefs/Focus.c:265 +#: ../../WPrefs.app/Focus.c:269 msgid "Install colormap in the window..." msgstr "Instalar colormap na janela..." -#: ../../WPrefs/Focus.c:270 +#: ../../WPrefs.app/Focus.c:274 msgid "...that has the input focus." msgstr "...que tem o foco do teclado." -#: ../../WPrefs/Focus.c:275 +#: ../../WPrefs.app/Focus.c:279 msgid "...that is under the mouse pointer." msgstr "...que está sob o cursor do mouse." -#: ../../WPrefs/Focus.c:284 +#: ../../WPrefs.app/Focus.c:288 msgid "Automatic Window Raise Delay" msgstr "Levantar Janela Depois de..." -#: ../../WPrefs/Focus.c:341 +#: ../../WPrefs.app/Focus.c:345 msgid "msec" msgstr "mseg" -#: ../../WPrefs/Focus.c:358 -msgid "Do not let aplications receive the click used to focus windows." +#: ../../WPrefs.app/Focus.c:362 +msgid "Do not let applications receive the click used to focus windows." msgstr "Não deixar aplicação receber o clique usado para focar janelas." -#: ../../WPrefs/Focus.c:364 +#: ../../WPrefs.app/Focus.c:368 msgid "Automatically focus new windows." msgstr "Focar janelas novas automaticamente." -#: ../../WPrefs/Focus.c:385 +#: ../../WPrefs.app/Focus.c:389 msgid "Window Focus Preferences" msgstr "Preferências sobre Foco de Janela" -#: ../../WPrefs/KeyboardSettings.c:72 +#: ../../WPrefs.app/Icons.c:180 +msgid "Icon Positioning" +msgstr "Posicionamento de ícones" + +#: ../../WPrefs.app/Icons.c:227 +msgid "Iconification Animation" +msgstr "Animação de ícones" + +#: ../../WPrefs.app/Icons.c:238 +msgid "Shrinking/Zooming" +msgstr "Zoom" + +#: ../../WPrefs.app/Icons.c:239 +msgid "Spinning/Twisting" +msgstr "Girar" + +#: ../../WPrefs.app/Icons.c:240 +msgid "3D-flipping" +msgstr "Giro 3D" + +#: ../../WPrefs.app/Icons.c:241 +msgid "None" +msgstr "Nenhum" + +#: ../../WPrefs.app/Icons.c:249 +msgid "Icon Display" +msgstr "Disposição de Ícones" + +#: ../../WPrefs.app/Icons.c:254 +msgid "Auto-arrange icons" +msgstr "Auto-alinhar ícones" + +#: ../../WPrefs.app/Icons.c:259 +msgid "Omnipresent miniwindows" +msgstr "Minijanelas onipresentes" + +#: ../../WPrefs.app/Icons.c:267 +msgid "Icon Size" +msgstr "Tamanho do Ícone" + +#: ../../WPrefs.app/Icons.c:337 +msgid "Icon Preferences" +msgstr "Preferências de ícones" + +#: ../../WPrefs.app/KeyboardSettings.c:72 msgid "Initial Key Repeat" -msgstr "" +msgstr "Repetição de teclas" -#: ../../WPrefs/KeyboardSettings.c:113 +#: ../../WPrefs.app/KeyboardSettings.c:113 msgid "Key Repeat Rate" -msgstr "" +msgstr "Taxa de repetição do teclado" -#: ../../WPrefs/KeyboardSettings.c:153 +#: ../../WPrefs.app/KeyboardSettings.c:153 msgid "Type here to test" -msgstr "" +msgstr "Tecle aqui para testar" -#: ../../WPrefs/KeyboardSettings.c:172 +#: ../../WPrefs.app/KeyboardSettings.c:172 msgid "Keyboard Preferences" -msgstr "" +msgstr "Preferências de teclado" -#: ../../WPrefs/KeyboardShortcuts.c:161 ../../WPrefs/Menu.c:891 ../../WPrefs/MenuGuru.c:261 +#: ../../WPrefs.app/KeyboardShortcuts.c:183 ../../WPrefs.app/Menu.c:962 +#: ../../WPrefs.app/MenuGuru.c:263 msgid "Cancel" msgstr "Cancelar" -#: ../../WPrefs/KeyboardShortcuts.c:162 +#: ../../WPrefs.app/KeyboardShortcuts.c:184 msgid "Press the desired shortcut key(s) or click Cancel to stop capturing." -msgstr "Tecle a(s) tecla(s) de atalho desejada(s) ou clique Cancelar para parar a captura." +msgstr "" +"Tecle a(s) tecla(s) de atalho desejada(s) ou clique Cancelar para parar a " +"captura." -#: ../../WPrefs/KeyboardShortcuts.c:180 ../../WPrefs/KeyboardShortcuts.c:372 ../../WPrefs/Menu.c:902 ../../WPrefs/Menu.c:1122 +#: ../../WPrefs.app/KeyboardShortcuts.c:204 +#: ../../WPrefs.app/KeyboardShortcuts.c:444 ../../WPrefs.app/Menu.c:974 +#: ../../WPrefs.app/Menu.c:1193 msgid "Capture" msgstr "Capturar" -#: ../../WPrefs/KeyboardShortcuts.c:181 ../../WPrefs/KeyboardShortcuts.c:379 +#: ../../WPrefs.app/KeyboardShortcuts.c:205 +#: ../../WPrefs.app/KeyboardShortcuts.c:451 msgid "Click Capture to interactively define the shortcut key." msgstr "Clique Capturar para definir a(s) tecla(s) de atalho interativamente." -#: ../../WPrefs/KeyboardShortcuts.c:297 +#: ../../WPrefs.app/KeyboardShortcuts.c:359 msgid "Actions" msgstr "Ações" -#: ../../WPrefs/KeyboardShortcuts.c:311 +#: ../../WPrefs.app/KeyboardShortcuts.c:375 msgid "Open applications menu" msgstr "Abrir menu de aplicações" -#: ../../WPrefs/KeyboardShortcuts.c:312 +#: ../../WPrefs.app/KeyboardShortcuts.c:376 msgid "Open window list menu" msgstr "Abrir lista de janelas" -#: ../../WPrefs/KeyboardShortcuts.c:313 +#: ../../WPrefs.app/KeyboardShortcuts.c:377 msgid "Open window commands menu" msgstr "Abrir menu de comandos para janelas" -#: ../../WPrefs/KeyboardShortcuts.c:314 +#: ../../WPrefs.app/KeyboardShortcuts.c:378 msgid "Hide active application" msgstr "Esconder (hide) aplicação ativa" -#: ../../WPrefs/KeyboardShortcuts.c:315 +#: ../../WPrefs.app/KeyboardShortcuts.c:379 msgid "Miniaturize active window" msgstr "Miniaturizar janela ativa" -#: ../../WPrefs/KeyboardShortcuts.c:316 +#: ../../WPrefs.app/KeyboardShortcuts.c:380 msgid "Close active window" msgstr "Fechar janela ativa" -#: ../../WPrefs/KeyboardShortcuts.c:317 +#: ../../WPrefs.app/KeyboardShortcuts.c:381 msgid "Maximize active window" msgstr "Maximizar janela ativa" -#: ../../WPrefs/KeyboardShortcuts.c:318 +#: ../../WPrefs.app/KeyboardShortcuts.c:382 msgid "Maximize active window vertically" msgstr "Maximizar janela ativa verticalmente" -#: ../../WPrefs/KeyboardShortcuts.c:319 +#: ../../WPrefs.app/KeyboardShortcuts.c:383 msgid "Raise active window" msgstr "Levantar janela ativa" -#: ../../WPrefs/KeyboardShortcuts.c:320 +#: ../../WPrefs.app/KeyboardShortcuts.c:384 msgid "Lower active window" msgstr "Rebaixar janela ativa" -#: ../../WPrefs/KeyboardShortcuts.c:321 +#: ../../WPrefs.app/KeyboardShortcuts.c:385 msgid "Raise/Lower window under mouse pointer" msgstr "Levantar/Rebaixar janela sob cursor" -#: ../../WPrefs/KeyboardShortcuts.c:322 +#: ../../WPrefs.app/KeyboardShortcuts.c:386 msgid "Shade active window" msgstr "Shadear janela ativa" -#: ../../WPrefs/KeyboardShortcuts.c:323 +#: ../../WPrefs.app/KeyboardShortcuts.c:387 +msgid "Move/Resize active window" +msgstr "Mover/Redimensionar janela ativa" + +#: ../../WPrefs.app/KeyboardShortcuts.c:388 msgid "Select active window" msgstr "Selectionar janela ativa" -#: ../../WPrefs/KeyboardShortcuts.c:324 +#: ../../WPrefs.app/KeyboardShortcuts.c:389 msgid "Focus next window" msgstr "Focar/ativar próxima janela" -#: ../../WPrefs/KeyboardShortcuts.c:325 +#: ../../WPrefs.app/KeyboardShortcuts.c:390 msgid "Focus previous window" msgstr "Focar/ativar janela anterior" -#: ../../WPrefs/KeyboardShortcuts.c:326 +#: ../../WPrefs.app/KeyboardShortcuts.c:391 msgid "Switch to next workspace" msgstr "Ir para próxima área de trabalho" -#: ../../WPrefs/KeyboardShortcuts.c:327 +#: ../../WPrefs.app/KeyboardShortcuts.c:392 msgid "Switch to previous workspace" msgstr "Ir para área de trabalho anterior" -#: ../../WPrefs/KeyboardShortcuts.c:328 +#: ../../WPrefs.app/KeyboardShortcuts.c:393 msgid "Switch to next ten workspaces" msgstr "Ir para as próximas 10 áreas de trabalho" -#: ../../WPrefs/KeyboardShortcuts.c:329 +#: ../../WPrefs.app/KeyboardShortcuts.c:394 msgid "Switch to previous ten workspaces" msgstr "Ir para as 10 áreas de trabalho anteriores" -#: ../../WPrefs/KeyboardShortcuts.c:330 +#: ../../WPrefs.app/KeyboardShortcuts.c:395 msgid "Switch to workspace 1" msgstr "Ir para área de trabalho 1" -#: ../../WPrefs/KeyboardShortcuts.c:331 +#: ../../WPrefs.app/KeyboardShortcuts.c:396 msgid "Switch to workspace 2" msgstr "Ir para área de trabalho 2" -#: ../../WPrefs/KeyboardShortcuts.c:332 +#: ../../WPrefs.app/KeyboardShortcuts.c:397 msgid "Switch to workspace 3" msgstr "Ir para área de trabalho 3" -#: ../../WPrefs/KeyboardShortcuts.c:333 +#: ../../WPrefs.app/KeyboardShortcuts.c:398 msgid "Switch to workspace 4" msgstr "Ir para área de trabalho 4" -#: ../../WPrefs/KeyboardShortcuts.c:334 +#: ../../WPrefs.app/KeyboardShortcuts.c:399 msgid "Switch to workspace 5" msgstr "Ir para área de trabalho 5" -#: ../../WPrefs/KeyboardShortcuts.c:335 +#: ../../WPrefs.app/KeyboardShortcuts.c:400 msgid "Switch to workspace 6" msgstr "Ir para área de trabalho 6" -#: ../../WPrefs/KeyboardShortcuts.c:336 +#: ../../WPrefs.app/KeyboardShortcuts.c:401 msgid "Switch to workspace 7" msgstr "Ir para área de trabalho 7" -#: ../../WPrefs/KeyboardShortcuts.c:337 +#: ../../WPrefs.app/KeyboardShortcuts.c:402 msgid "Switch to workspace 8" msgstr "Ir para área de trabalho 8" -#: ../../WPrefs/KeyboardShortcuts.c:338 +#: ../../WPrefs.app/KeyboardShortcuts.c:403 msgid "Switch to workspace 9" msgstr "Ir para área de trabalho 9" -#: ../../WPrefs/KeyboardShortcuts.c:339 +#: ../../WPrefs.app/KeyboardShortcuts.c:404 msgid "Switch to workspace 10" msgstr "Ir para área de trabalho 10" -#: ../../WPrefs/KeyboardShortcuts.c:340 +#: ../../WPrefs.app/KeyboardShortcuts.c:405 +msgid "Shortcut for window 1" +msgstr "Atalho para janela 1" + +#: ../../WPrefs.app/KeyboardShortcuts.c:406 +msgid "Shortcut for window 2" +msgstr "Atalho para janela 2" + +#: ../../WPrefs.app/KeyboardShortcuts.c:407 +msgid "Shortcut for window 3" +msgstr "Atalho para janela 3" + +#: ../../WPrefs.app/KeyboardShortcuts.c:408 +msgid "Shortcut for window 4" +msgstr "Atalho para janela 4" + +#: ../../WPrefs.app/KeyboardShortcuts.c:409 msgid "Raise Clip" msgstr "Levantar Clip" -#: ../../WPrefs/KeyboardShortcuts.c:341 +#: ../../WPrefs.app/KeyboardShortcuts.c:410 msgid "Lower Clip" msgstr "Rebaixar Clip" -#: ../../WPrefs/KeyboardShortcuts.c:342 +#: ../../WPrefs.app/KeyboardShortcuts.c:411 msgid "Raise/Lower Clip" msgstr "Levantar/Rebaixar Clip" -#: ../../WPrefs/KeyboardShortcuts.c:355 ../../WPrefs/Menu.c:1111 +#: ../../WPrefs.app/KeyboardShortcuts.c:413 +msgid "Toggle keyboard language" +msgstr "Mudar mapa de teclado" + +#: ../../WPrefs.app/KeyboardShortcuts.c:427 ../../WPrefs.app/Menu.c:1182 msgid "Shortcut" msgstr "Tecla de Atalho" -#: ../../WPrefs/KeyboardShortcuts.c:366 +#: ../../WPrefs.app/KeyboardShortcuts.c:438 msgid "Clear" msgstr "Limpar" -#: ../../WPrefs/KeyboardShortcuts.c:427 +#: ../../WPrefs.app/KeyboardShortcuts.c:499 msgid "Keyboard Shortcut Preferences" msgstr "Preferências de Teclas de Atalho" -#: ../../WPrefs/Menu.c:364 +#: ../../WPrefs.app/Menu.c:404 msgid "Window Manager" msgstr "Gerenciador de Janelas" -#: ../../WPrefs/Menu.c:366 +#: ../../WPrefs.app/Menu.c:406 msgid "Program to open files" msgstr "Abrir arquivos com..." -#: ../../WPrefs/Menu.c:368 ../../WPrefs/Menu.c:1098 +#: ../../WPrefs.app/Menu.c:408 ../../WPrefs.app/Menu.c:1169 msgid "Program to Run" msgstr "Programa a Executar" -#: ../../WPrefs/Menu.c:418 ../../WPrefs/Menu.c:419 +#: ../../WPrefs.app/Menu.c:456 ../../WPrefs.app/Menu.c:457 +#, c-format msgid "New Command %i" msgstr "Comando %i" -#: ../../WPrefs/Menu.c:426 +#: ../../WPrefs.app/Menu.c:464 msgid "New Submenu" msgstr "Submenu" -#: ../../WPrefs/Menu.c:431 +#: ../../WPrefs.app/Menu.c:469 msgid "External Menu" msgstr "Menu Externo" -#: ../../WPrefs/Menu.c:438 +#: ../../WPrefs.app/Menu.c:476 msgid "Workspaces" msgstr "Áreas de Trabalho" -#: ../../WPrefs/Menu.c:982 ../../WPrefs/Menu.c:997 +#: ../../WPrefs.app/Menu.c:1053 ../../WPrefs.app/Menu.c:1068 msgid "Commands" msgstr "Comandos" -#: ../../WPrefs/Menu.c:983 ../../WPrefs/Menu.c:998 +#: ../../WPrefs.app/Menu.c:1054 ../../WPrefs.app/Menu.c:1069 msgid "Add Command" msgstr "Novo Comando" -#: ../../WPrefs/Menu.c:984 ../../WPrefs/Menu.c:999 +#: ../../WPrefs.app/Menu.c:1055 ../../WPrefs.app/Menu.c:1070 msgid "Add Submenu" msgstr "Novo Submenu" -#: ../../WPrefs/Menu.c:985 ../../WPrefs/Menu.c:1000 +#: ../../WPrefs.app/Menu.c:1056 ../../WPrefs.app/Menu.c:1071 msgid "Add External Menu" msgstr "Menu Externo" -#: ../../WPrefs/Menu.c:986 ../../WPrefs/Menu.c:1001 +#: ../../WPrefs.app/Menu.c:1057 ../../WPrefs.app/Menu.c:1072 msgid "Add Workspace Menu" msgstr "Menu de Áreas de Trab." -#: ../../WPrefs/Menu.c:987 ../../WPrefs/Menu.c:1002 +#: ../../WPrefs.app/Menu.c:1058 ../../WPrefs.app/Menu.c:1073 msgid "Remove Item" msgstr "Remover Item" -#: ../../WPrefs/Menu.c:988 ../../WPrefs/Menu.c:1003 +#: ../../WPrefs.app/Menu.c:1059 ../../WPrefs.app/Menu.c:1074 msgid "Cut Item" msgstr "Cortar Item" -#: ../../WPrefs/Menu.c:989 ../../WPrefs/Menu.c:1004 +#: ../../WPrefs.app/Menu.c:1060 ../../WPrefs.app/Menu.c:1075 msgid "Copy Item" msgstr "Copiar Item" -#: ../../WPrefs/Menu.c:990 ../../WPrefs/Menu.c:1005 +#: ../../WPrefs.app/Menu.c:1061 ../../WPrefs.app/Menu.c:1076 msgid "Paste Item" msgstr "Colar Item" -#: ../../WPrefs/Menu.c:1034 +#: ../../WPrefs.app/Menu.c:1105 msgid "Label" msgstr "Título" -#: ../../WPrefs/Menu.c:1047 +#: ../../WPrefs.app/Menu.c:1118 msgid "Command" msgstr "Comando" -#: ../../WPrefs/Menu.c:1052 +#: ../../WPrefs.app/Menu.c:1123 msgid "Run Program" msgstr "Executar Programa" -#: ../../WPrefs/Menu.c:1053 +#: ../../WPrefs.app/Menu.c:1124 msgid "Arrange Icons" msgstr "Alinhar Ícones" -#: ../../WPrefs/Menu.c:1054 +#: ../../WPrefs.app/Menu.c:1125 msgid "Hide Others" msgstr "Esconder (hide) Outros" -#: ../../WPrefs/Menu.c:1055 +#: ../../WPrefs.app/Menu.c:1126 msgid "Show All Windows" msgstr "Mostrar Todas as Janelas" -#: ../../WPrefs/Menu.c:1056 +#: ../../WPrefs.app/Menu.c:1127 msgid "Exit WindowMaker" msgstr "Sair do WindowMaker" -#: ../../WPrefs/Menu.c:1057 +#: ../../WPrefs.app/Menu.c:1128 msgid "Exit X Session" msgstr "Sair da Sessão do X" -#: ../../WPrefs/Menu.c:1058 +#: ../../WPrefs.app/Menu.c:1129 msgid "Start window manager" msgstr "Iniciar ger.de janelas" -#: ../../WPrefs/Menu.c:1059 +#: ../../WPrefs.app/Menu.c:1130 msgid "Restart WindowMaker" msgstr "Reiniciar WindowMaker" -#: ../../WPrefs/Menu.c:1060 +#: ../../WPrefs.app/Menu.c:1131 msgid "Save Session" msgstr "Salvar Sessão" -#: ../../WPrefs/Menu.c:1061 +#: ../../WPrefs.app/Menu.c:1132 msgid "Clear Session" msgstr "Limpar Sessão" -#: ../../WPrefs/Menu.c:1062 +#: ../../WPrefs.app/Menu.c:1133 msgid "Refresh Screen" msgstr "Refresh da Tela" -#: ../../WPrefs/Menu.c:1063 +#: ../../WPrefs.app/Menu.c:1134 msgid "Info Panel" msgstr "Janela de Informações" -#: ../../WPrefs/Menu.c:1064 +#: ../../WPrefs.app/Menu.c:1135 msgid "Legal Panel" msgstr "Janela de Inform.Legais" -#: ../../WPrefs/Menu.c:1072 +#: ../../WPrefs.app/Menu.c:1143 msgid "Open workspace menu" msgstr "Abrir menu de áreas de trabalho" -#: ../../WPrefs/Menu.c:1079 +#: ../../WPrefs.app/Menu.c:1150 msgid "No confirmation panel" msgstr "Sem janela de confirmação" -#: ../../WPrefs/Menu.c:1085 +#: ../../WPrefs.app/Menu.c:1156 msgid "Menu Path/Directory List" msgstr "Path do menu/Lista de dirs." -#: ../../WPrefs/Menu.c:1130 +#: ../../WPrefs.app/Menu.c:1201 msgid "Ask help to the Guru" msgstr "Pedir ajuda ao Guru" -#: ../../WPrefs/Menu.c:1242 -msgid "The format of the current menu file (%s) is not supported by WPrefs. A new menu will be created." -msgstr "O formato do menu atual (%s) não é suportado pelo WPrefs. Um menu novo será criado." - -#: ../../WPrefs/Menu.c:1245 ../../WPrefs/WPrefs.c:565 -msgid "Warning" -msgstr "Aviso" - -#: ../../WPrefs/Menu.c:1246 ../../WPrefs/MenuGuru.c:117 ../../WPrefs/MenuGuru.c:124 ../../WPrefs/MenuGuru.c:138 ../../WPrefs/MouseSettings.c:156 ../../WPrefs/Text.c:181 ../../WPrefs/WPrefs.c:527 ../../WPrefs/WPrefs.c:532 ../../WPrefs/WPrefs.c:543 ../../WPrefs/WPrefs.c:552 ../../WPrefs/WPrefs.c:558 ../../WPrefs/WPrefs.c:565 ../../WPrefs/WPrefs.c:587 -msgid "OK" -msgstr "OK" - -#: ../../WPrefs/Menu.c:1284 -msgid "Aplications Menu Definition" -msgstr "Definição do Menu de Aplicações" - -#: ../../WPrefs/MenuGuru.c:104 -msgid "Menu Guru - Select Type" -msgstr "Guru de Menu - Tipo" - -#: ../../WPrefs/MenuGuru.c:109 ../../WPrefs/MenuGuru.c:131 ../../WPrefs/MenuGuru.c:249 -msgid "Next" -msgstr "Próximo" - -#: ../../WPrefs/MenuGuru.c:112 -msgid "Menu Guru - Select Menu File" -msgstr "Guru de Menu - Arquivo de Menu" - -#: ../../WPrefs/MenuGuru.c:120 -msgid "Menu Guru - Select Pipe Command" -msgstr "Guru de Menu - Comando Para Pipe" - -#: ../../WPrefs/MenuGuru.c:127 -msgid "Menu Guru - Select Directories" -msgstr "Guru de Menu - Diretórios" - -#: ../../WPrefs/MenuGuru.c:134 -msgid "Menu Guru - Select Command" -msgstr "Guru de Menu - Comando" - -#: ../../WPrefs/MenuGuru.c:255 -msgid "Back" -msgstr "Voltar" - -#: ../../WPrefs/MenuGuru.c:269 -msgid "" -"This process will help you create a submenu which definition is located in another file or is created dynamically.\n" -"What do you want to use as the contents of the submenu?" +#. if there is a localized plmenu for the tongue put it's filename here +#: ../../WPrefs.app/Menu.c:1312 ../../WPrefs.app/Menu.c:1319 +#, c-format +msgid "%s/Library/WindowMaker/plmenu" msgstr "" -"Este processo irá ajudá-lo a criar um submenu cuja definição é criada dinamicamente ou localizada em um outro arquivo.\n" -"O que deseja usar como o conteúdo do submenu?" -#: ../../WPrefs/MenuGuru.c:277 -msgid "A file containing the menu definition in the plain text (non-property list) menu format." -msgstr "Um arquivo contendo a definição do menu em formato de texto puro (não é property list)." +#: ../../WPrefs.app/Menu.c:1328 +#, c-format +msgid "Could not open default menu from '%s'" +msgstr "Menu padrão %s não pôde ser aberto" -#: ../../WPrefs/MenuGuru.c:283 -msgid "The menu definition generated by a script/program read through a pipe." -msgstr "A definição de um menu gerado por um script/programa lido por um pipe." - -#: ../../WPrefs/MenuGuru.c:289 -msgid "The files in one or more directories." -msgstr "Os arquivos em um ou mais diretórios." - -#: ../../WPrefs/MenuGuru.c:301 -msgid "Type the path for the menu file:" -msgstr "Digite o caminho para o arquivo de menu:" - -#: ../../WPrefs/MenuGuru.c:316 -msgid "The menu file must contain a menu in the plain text menu file format. This format is described in the menu files included with WindowMaker, probably at ~/GNUstep/Library/WindowMaker/menu" -msgstr "O arquivo de menu deve conter um menu em formato texto puro. Esse formato é descrito no menu incluído no WindowMaker, provavelmente em ~/GNUstep/Library/WindowMaker/menu." - -#: ../../WPrefs/MenuGuru.c:326 -msgid "Type the command that will generate the menu definition:" -msgstr "Digite o comando que irá gerar a definição do menu:" - -#: ../../WPrefs/MenuGuru.c:336 -msgid "The command supplied must generate and output a valid menu definition to stdout. This definition should be in the plain text menu file format, described in the menu files included with WindowMaker, probably at ~/GNUstep/Library/WindowMaker/menu" -msgstr "O comando deverá gerar uma definição de menu válida e mandá-lo para o stdout. Esta definição deve estar no formato descrito em ~/GNUstep/Library/WindowMaker/menu" - -#: ../../WPrefs/MenuGuru.c:348 ../../WPrefs/MenuGuru.c:370 ../../WPrefs/MenuGuru.c:392 -msgid "Type the path for the directory. You can type more than one path by separating them with spaces." -msgstr "Digite o caminho para o diretório. Você pode digitar mais de um caminho, separando-os com um espaço." - -#: ../../WPrefs/MenuGuru.c:359 ../../WPrefs/MenuGuru.c:381 ../../WPrefs/MenuGuru.c:403 -msgid "The menu generated will have an item for each file in the directory. The directories can contain program executables or data files (such as jpeg images)." -msgstr "O menu gerado terá um item para cada arquivo no diretório. Os diretórios podem conter programas ou arquivos de dados (como imagens jpeg, por exemplo)" - -#: ../../WPrefs/MenuGuru.c:413 -msgid "If the directory contain data files, type the command used to open these files. Otherwise, leave it in blank." -msgstr "Se o diretório contém arquivos de dados, digite o comando que deve ser usado para abri-los. Senão, deixe em branco." - -#: ../../WPrefs/MenuGuru.c:424 -msgid "Each file in the directory will have an item and they will be opened with the supplied command.For example, if the directory contains image files and the command is \"xv -root\", each file in the directory will have a menu item like \"xv -root imagefile\"." -msgstr "Cada arquivo no diretório terá um item que executará o programa com o arquivo como parâmetro." - -#: ../../WPrefs/MenuPreferences.c:112 -msgid "Menu Scrolling Speed" -msgstr "Velocidade de Rolagem do Menu" - -#: ../../WPrefs/MenuPreferences.c:161 -msgid "Submenu Alignment" -msgstr "Alinhamento de Submenus" - -#: ../../WPrefs/MenuPreferences.c:204 -msgid "Open submenus to the left if they don't fit inside the screen." -msgstr "Abrir menus para a esquerda se não couberem na tela." - -#: ../../WPrefs/MenuPreferences.c:209 -msgid "Scroll off-screen menus when pointer is moved over them." -msgstr "Rolar menus para dentro da tela quando o mouse estiver sobre eles." - -#: ../../WPrefs/MenuPreferences.c:229 -msgid "Menu Preferences" -msgstr "Preferências de Menu" - -#: ../../WPrefs/MouseSettings.c:154 ../../WPrefs/Text.c:180 ../../WPrefs/WPrefs.c:527 ../../WPrefs/WPrefs.c:532 ../../WPrefs/WPrefs.c:541 ../../WPrefs/WPrefs.c:550 ../../WPrefs/WPrefs.c:558 ../../WPrefs/WPrefs.c:587 +#: ../../WPrefs.app/Menu.c:1331 ../../WPrefs.app/MouseSettings.c:149 +#: ../../WPrefs.app/MouseSettings.c:172 ../../WPrefs.app/Text.c:181 +#: ../../WPrefs.app/Themes.c:96 ../../WPrefs.app/WPrefs.c:587 +#: ../../WPrefs.app/WPrefs.c:592 ../../WPrefs.app/WPrefs.c:601 +#: ../../WPrefs.app/WPrefs.c:611 ../../WPrefs.app/WPrefs.c:621 +#: ../../WPrefs.app/WPrefs.c:652 ../../WPrefs.app/WPrefs.c:657 msgid "Error" msgstr "Erro" -#: ../../WPrefs/MouseSettings.c:155 -msgid "Invalid mouse acceleration threshold value. Must be the number of pixels to travel before accelerating." -msgstr "Valor de distância inválida. Deve ser o número de pixels a percorrer antes de acelerar o mouse." +#: ../../WPrefs.app/Menu.c:1331 ../../WPrefs.app/MenuGuru.c:119 +#: ../../WPrefs.app/MenuGuru.c:126 ../../WPrefs.app/MenuGuru.c:140 +#: ../../WPrefs.app/MouseSettings.c:151 ../../WPrefs.app/MouseSettings.c:174 +#: ../../WPrefs.app/Text.c:181 ../../WPrefs.app/Themes.c:98 +#: ../../WPrefs.app/WPrefs.c:587 ../../WPrefs.app/WPrefs.c:592 +#: ../../WPrefs.app/WPrefs.c:603 ../../WPrefs.app/WPrefs.c:615 +#: ../../WPrefs.app/WPrefs.c:621 ../../WPrefs.app/WPrefs.c:628 +#: ../../WPrefs.app/WPrefs.c:652 ../../WPrefs.app/WPrefs.c:657 +msgid "OK" +msgstr "OK" -#: ../../WPrefs/MouseSettings.c:209 +#: ../../WPrefs.app/Menu.c:1438 +msgid "Applications Menu Definition" +msgstr "Definição do Menu de Aplicações" + +#: ../../WPrefs.app/MenuGuru.c:106 +msgid "Menu Guru - Select Type" +msgstr "Guru de Menu - Tipo" + +#: ../../WPrefs.app/MenuGuru.c:111 ../../WPrefs.app/MenuGuru.c:133 +#: ../../WPrefs.app/MenuGuru.c:251 +msgid "Next" +msgstr "Próximo" + +#: ../../WPrefs.app/MenuGuru.c:114 +msgid "Menu Guru - Select Menu File" +msgstr "Guru de Menu - Arquivo de Menu" + +#: ../../WPrefs.app/MenuGuru.c:122 +msgid "Menu Guru - Select Pipe Command" +msgstr "Guru de Menu - Comando Para Pipe" + +#: ../../WPrefs.app/MenuGuru.c:129 +msgid "Menu Guru - Select Directories" +msgstr "Guru de Menu - Diretórios" + +#: ../../WPrefs.app/MenuGuru.c:136 +msgid "Menu Guru - Select Command" +msgstr "Guru de Menu - Comando" + +#: ../../WPrefs.app/MenuGuru.c:257 +msgid "Back" +msgstr "Voltar" + +#: ../../WPrefs.app/MenuGuru.c:271 +msgid "" +"This process will help you create a submenu which definition is located in " +"another file or is created dynamically.\n" +"What do you want to use as the contents of the submenu?" +msgstr "" +"Este processo irá ajudá-lo a criar um submenu cuja definição é criada " +"dinamicamente ou localizada em um outro arquivo.\n" +"O que deseja usar como o conteúdo do submenu?" + +#: ../../WPrefs.app/MenuGuru.c:279 +msgid "" +"A file containing the menu definition in the plain text (non-property list) " +"menu format." +msgstr "" +"Um arquivo contendo a definição do menu em formato de texto puro (não é " +"property list)." + +#: ../../WPrefs.app/MenuGuru.c:285 +msgid "The menu definition generated by a script/program read through a pipe." +msgstr "A definição de um menu gerado por um script/programa lido por um pipe." + +#: ../../WPrefs.app/MenuGuru.c:291 +msgid "The files in one or more directories." +msgstr "Os arquivos em um ou mais diretórios." + +#: ../../WPrefs.app/MenuGuru.c:303 +msgid "Type the path for the menu file:" +msgstr "Digite o caminho para o arquivo de menu:" + +#: ../../WPrefs.app/MenuGuru.c:318 +msgid "" +"The menu file must contain a menu in the plain text menu file format. This " +"format is described in the menu files included with WindowMaker, probably at " +"~/GNUstep/Library/WindowMaker/menu" +msgstr "" +"O arquivo de menu deve conter um menu em formato texto puro. Esse formato é " +"descrito no menu incluído no WindowMaker, provavelmente em " +"~/GNUstep/Library/WindowMaker/menu." + +#: ../../WPrefs.app/MenuGuru.c:328 +msgid "Type the command that will generate the menu definition:" +msgstr "Digite o comando que irá gerar a definição do menu:" + +#: ../../WPrefs.app/MenuGuru.c:338 +msgid "" +"The command supplied must generate and output a valid menu definition to " +"stdout. This definition should be in the plain text menu file format, " +"described in the menu files included with WindowMaker, usually at " +"~/GNUstep/Library/WindowMaker/menu" +msgstr "" +"O comando deverá gerar uma definição de menu válida e mandá-lo para o " +"stdout. Esta definição deve estar no formato descrito em " +"~/GNUstep/Library/WindowMaker/menu" + +#: ../../WPrefs.app/MenuGuru.c:350 ../../WPrefs.app/MenuGuru.c:372 +#: ../../WPrefs.app/MenuGuru.c:394 +msgid "" +"Type the path for the directory. You can type more than one path by " +"separating them with spaces." +msgstr "" +"Digite o caminho para o diretório. Você pode digitar mais de um caminho, " +"separando-os com um espaço." + +#: ../../WPrefs.app/MenuGuru.c:361 ../../WPrefs.app/MenuGuru.c:383 +#: ../../WPrefs.app/MenuGuru.c:405 +msgid "" +"The menu generated will have an item for each file in the directory. The " +"directories can contain program executables or data files (such as jpeg " +"images)." +msgstr "" +"O menu gerado terá um item para cada arquivo no diretório. Os diretórios " +"podem conter programas ou arquivos de dados (como imagens jpeg, por exemplo)" + +#: ../../WPrefs.app/MenuGuru.c:415 +msgid "" +"If the directory contain data files, type the command used to open these " +"files. Otherwise, leave it in blank." +msgstr "" +"Se o diretório contém arquivos de dados, digite o comando que deve ser usado " +"para abri-los. Senão, deixe em branco." + +#: ../../WPrefs.app/MenuGuru.c:426 +msgid "" +"Each file in the directory will have an item and they will be opened with " +"the supplied command.For example, if the directory contains image files and " +"the command is \"xv -root\", each file in the directory will have a menu " +"item like \"xv -root imagefile\"." +msgstr "" +"Cada arquivo no diretório terá um item que executará o programa com o " +"arquivo como parâmetro." + +#: ../../WPrefs.app/MenuPreferences.c:112 +msgid "Menu Scrolling Speed" +msgstr "Velocidade de Rolagem do Menu" + +#: ../../WPrefs.app/MenuPreferences.c:161 +msgid "Submenu Alignment" +msgstr "Alinhamento de Submenus" + +#: ../../WPrefs.app/MenuPreferences.c:204 +msgid "" +"Always open submenus inside the screen, instead of scrolling.\n" +"Note: this can be an annoyance at some circumstances." +msgstr "" +"Sempre abrir submenis dentro da tela, ao invés de rolar.\n" +"Nota: isso pode ser um aborrecimento em certas circunstâncias." + +#: ../../WPrefs.app/MenuPreferences.c:209 +msgid "Scroll off-screen menus when pointer is moved over them." +msgstr "Rolar menus para dentro da tela quando o mouse estiver sobre eles." + +#: ../../WPrefs.app/MenuPreferences.c:229 +msgid "Menu Preferences" +msgstr "Preferências de Menu" + +#: ../../WPrefs.app/MouseSettings.c:150 +msgid "Invalid mouse acceleration value. Must be a positive real value." +msgstr "" +"Valor de aceleração inválido. Deve ser um valor positivo real." + +#: ../../WPrefs.app/MouseSettings.c:173 +msgid "" +"Invalid mouse acceleration threshold value. Must be the number of pixels to " +"travel before accelerating." +msgstr "" +"Valor de distância inválida. Deve ser o número de pixels a percorrer antes " +"de acelerar o mouse." + +#: ../../WPrefs.app/MouseSettings.c:232 +#, c-format msgid "mouse button %s not supported by WPrefs." msgstr "botão de mouse %s não é suportado pelo WPrefs." -#: ../../WPrefs/MouseSettings.c:243 ../../WPrefs/MouseSettings.c:254 ../../WPrefs/MouseSettings.c:265 +#: ../../WPrefs.app/MouseSettings.c:268 ../../WPrefs.app/MouseSettings.c:281 +#: ../../WPrefs.app/MouseSettings.c:294 +#, c-format msgid "bad value %s for option %s" msgstr "valor %s não é válido para opção %s" -#: ../../WPrefs/MouseSettings.c:325 -msgid "modifier key %s for option ModifierKey was not recognized. Using %s as default" -msgstr "tecla modificadora %s da opção ModifierKey não foi reconhecida. Usando default %s" +#: ../../WPrefs.app/MouseSettings.c:362 +#, c-format +msgid "" +"modifier key %s for option ModifierKey was not recognized. Using %s as " +"default" +msgstr "" +"tecla modificadora %s da opção ModifierKey não foi reconhecida. Usando " +"default %s" -#: ../../WPrefs/MouseSettings.c:350 +#: ../../WPrefs.app/MouseSettings.c:387 msgid "could not retrieve keyboard modifier mapping" msgstr "o mapa de modificadores de teclado não pôde ser determinado" -#: ../../WPrefs/MouseSettings.c:443 +#: ../../WPrefs.app/MouseSettings.c:534 msgid "Mouse Speed" msgstr "Velocidade do Mouse" -#: ../../WPrefs/MouseSettings.c:510 +#: ../../WPrefs.app/MouseSettings.c:597 +msgid "Acceler.:" +msgstr "Aceler.:" + +#: ../../WPrefs.app/MouseSettings.c:610 msgid "Threshold:" msgstr "Distância:" -#: ../../WPrefs/MouseSettings.c:525 +#: ../../WPrefs.app/MouseSettings.c:625 msgid "Double-Click Delay" msgstr "Tempo Para Duplo-Clique" -#: ../../WPrefs/MouseSettings.c:569 +#: ../../WPrefs.app/MouseSettings.c:669 msgid "Test" msgstr "Teste" -#: ../../WPrefs/MouseSettings.c:579 +#: ../../WPrefs.app/MouseSettings.c:699 msgid "Workspace Mouse Actions" msgstr "Ações de Mouse na Área de Trabalho" -#: ../../WPrefs/MouseSettings.c:584 +#: ../../WPrefs.app/MouseSettings.c:704 msgid "Disable mouse actions" msgstr "Desabilitar ações de mouse" -#: ../../WPrefs/MouseSettings.c:637 +#: ../../WPrefs.app/MouseSettings.c:757 msgid "Applications menu" msgstr "Menu de Aplicações" -#: ../../WPrefs/MouseSettings.c:643 +#: ../../WPrefs.app/MouseSettings.c:763 msgid "Window list menu" msgstr "Lista de Janelas" -#: ../../WPrefs/MouseSettings.c:649 +#: ../../WPrefs.app/MouseSettings.c:769 msgid "Select windows" msgstr "Selecionar Janelas" -#: ../../WPrefs/MouseSettings.c:681 +#: ../../WPrefs.app/MouseSettings.c:804 msgid "Mouse Grab Modifier" msgstr "Modificador para Grab de Mouse" -#: ../../WPrefs/MouseSettings.c:715 +#: ../../WPrefs.app/MouseSettings.c:838 +#, c-format msgid "could not create %s" msgstr "%s não pôde ser criado" -#: ../../WPrefs/MouseSettings.c:731 +#: ../../WPrefs.app/MouseSettings.c:854 +#, c-format msgid "could not create temporary file %s" msgstr "arquivo temporário %s não pôde ser criado" -#: ../../WPrefs/MouseSettings.c:756 +#: ../../WPrefs.app/MouseSettings.c:879 +#, c-format msgid "could not rename file %s to %s\n" msgstr "arquivo %s não pôde ser renomeado para %s\n" -#: ../../WPrefs/MouseSettings.c:839 +#: ../../WPrefs.app/MouseSettings.c:963 msgid "Mouse Preferences" msgstr "Preferências de Mouse" -#: ../../WPrefs/Paths.c:82 +#: ../../WPrefs.app/Paths.c:82 msgid "bad value in option IconPath. Using default path list" msgstr "valor inválido em IconPath. Usando valor default" -#: ../../WPrefs/Paths.c:99 +#: ../../WPrefs.app/Paths.c:99 msgid "bad value in option PixmapPath. Using default path list" msgstr "valor inválido em PixmapPath. Usando valor default" -#: ../../WPrefs/Paths.c:301 +#: ../../WPrefs.app/Paths.c:302 msgid "Icon Search Paths" msgstr "Diretórios de Ícones" -#: ../../WPrefs/Paths.c:313 ../../WPrefs/Paths.c:349 +#: ../../WPrefs.app/Paths.c:314 ../../WPrefs.app/Paths.c:350 msgid "Add" msgstr "Adicionar" -#: ../../WPrefs/Paths.c:320 ../../WPrefs/Paths.c:356 +#: ../../WPrefs.app/Paths.c:321 ../../WPrefs.app/Paths.c:357 msgid "Remove" msgstr "Remover" -#: ../../WPrefs/Paths.c:337 +#: ../../WPrefs.app/Paths.c:338 msgid "Pixmap Search Paths" msgstr "Diretórios de Pixmaps" -#: ../../WPrefs/Paths.c:385 +#: ../../WPrefs.app/Paths.c:389 msgid "Search Path Configuration" msgstr "Configuração de Diretórios de Procura" -#: ../../WPrefs/Preferences.c:142 +#: ../../WPrefs.app/Preferences.c:155 msgid "Size Display" msgstr "Display de Tamanho" -#: ../../WPrefs/Preferences.c:147 ../../WPrefs/Preferences.c:163 +#: ../../WPrefs.app/Preferences.c:160 ../../WPrefs.app/Preferences.c:176 msgid "Corner of screen" msgstr "Canto da tela" -#: ../../WPrefs/Preferences.c:148 ../../WPrefs/Preferences.c:164 +#: ../../WPrefs.app/Preferences.c:161 ../../WPrefs.app/Preferences.c:177 msgid "Center of screen" msgstr "Meio da tela" -#: ../../WPrefs/Preferences.c:149 ../../WPrefs/Preferences.c:165 +#: ../../WPrefs.app/Preferences.c:162 ../../WPrefs.app/Preferences.c:178 msgid "Center of resized window" msgstr "Meio da janela" -#: ../../WPrefs/Preferences.c:150 +#: ../../WPrefs.app/Preferences.c:163 msgid "Technical drawing-like" msgstr "Desenho Técnico" -#: ../../WPrefs/Preferences.c:158 +#: ../../WPrefs.app/Preferences.c:171 msgid "Position Display" msgstr "Display de Posição" -#: ../../WPrefs/Preferences.c:173 +#: ../../WPrefs.app/Preferences.c:186 msgid "Show balloon text for..." msgstr "Mostrar texto em balão para..." -#: ../../WPrefs/Preferences.c:180 +#: ../../WPrefs.app/Preferences.c:193 msgid "incomplete window titles" msgstr "títulos de janela incompletos" -#: ../../WPrefs/Preferences.c:181 +#: ../../WPrefs.app/Preferences.c:194 msgid "miniwindow titles" msgstr "título de minijanelas" -#: ../../WPrefs/Preferences.c:182 +#: ../../WPrefs.app/Preferences.c:195 msgid "application/dock icons" msgstr "ícones de aplicação/dock" -#: ../../WPrefs/Preferences.c:195 -msgid "Raise window when switching focus with keyboard." -msgstr "Levantar janela ao mudar de foco com teclado." +#: ../../WPrefs.app/Preferences.c:208 +msgid "Raise window when switching focus with keyboard (CirculateRaise)." +msgstr "Levantar janela ao mudar de foco com teclado (CirculateRaise)." -#: ../../WPrefs/Preferences.c:215 +#: ../../WPrefs.app/Preferences.c:214 +msgid "Keep keyboard language status for each window." +msgstr "Manter mapa de teclado para cada janela." + +#: ../../WPrefs.app/Preferences.c:235 msgid "Miscellaneous Ergonomic Preferences" msgstr "Preferências Ergonômicas Diversas" -#: ../../WPrefs/Text.c:179 +#: ../../WPrefs.app/Text.c:179 +#, c-format msgid "Invalid font %s." msgstr "Fonte inválida %s." -#: ../../WPrefs/Text.c:256 +#: ../../WPrefs.app/Text.c:256 msgid "Set Font..." msgstr "Mudar Fonte..." -#: ../../WPrefs/Text.c:262 +#: ../../WPrefs.app/Text.c:262 msgid "Window Title Font" msgstr "Fonte de Título de Janela" -#: ../../WPrefs/Text.c:263 +#: ../../WPrefs.app/Text.c:263 msgid "Menu Title Font" msgstr "Fonte de Título de Menu" -#: ../../WPrefs/Text.c:264 +#: ../../WPrefs.app/Text.c:264 msgid "Menu Item Font" msgstr "Fonte de Item de Menu" -#: ../../WPrefs/Text.c:265 +#: ../../WPrefs.app/Text.c:265 msgid "Icon Title Font" msgstr "Fonte de Título de Ícone" -#: ../../WPrefs/Text.c:266 +#: ../../WPrefs.app/Text.c:266 msgid "Clip Title Font" msgstr "Fonte do Título do Clip" -#: ../../WPrefs/Text.c:267 +#: ../../WPrefs.app/Text.c:267 msgid "Geometry Display Font" msgstr "Fonte do display de tam/pos" -#: ../../WPrefs/Text.c:280 +#: ../../WPrefs.app/Text.c:280 msgid "" "Sample Text\n" "abcdefghijklmnopqrstuvxywz\n" @@ -813,338 +1023,337 @@ msgstr "" "áéíóúÁÉÍÓÚâêîôûãõ\n" "0123456789" -#: ../../WPrefs/Text.c:285 +#: ../../WPrefs.app/Text.c:285 msgid "Alignment" msgstr "Alinhamento" -#: ../../WPrefs/Text.c:290 +#: ../../WPrefs.app/Text.c:290 msgid "Left" msgstr "Esquerdo" -#: ../../WPrefs/Text.c:296 +#: ../../WPrefs.app/Text.c:296 msgid "Center" msgstr "Centro" -#: ../../WPrefs/Text.c:303 +#: ../../WPrefs.app/Text.c:303 msgid "Right" msgstr "Direita" -#: ../../WPrefs/Text.c:325 +#: ../../WPrefs.app/Text.c:325 msgid "Text Preferences" msgstr "Preferências Texto" -#: ../../WPrefs/TextureAndColor.c:339 -msgid "Window Title Bar" -msgstr "Barra de Título da Janela" - -#: ../../WPrefs/TextureAndColor.c:340 -msgid "Menu Title Bar" -msgstr "Barra de Título de Menu" - -#: ../../WPrefs/TextureAndColor.c:341 -msgid "Menu Items" -msgstr "Items de Menu" - -#: ../../WPrefs/TextureAndColor.c:342 -msgid "Workspace/Clip" -msgstr "Área de Trabalho/Clip" - -#: ../../WPrefs/TextureAndColor.c:343 -msgid "Icons" -msgstr "Ícones" - -#: ../../WPrefs/TextureAndColor.c:354 -msgid "Focused Window" -msgstr "Janela Ativa" - -#: ../../WPrefs/TextureAndColor.c:367 ../../WPrefs/TextureAndColor.c:398 ../../WPrefs/TextureAndColor.c:429 -msgid "Texture" -msgstr "Textura" - -#: ../../WPrefs/TextureAndColor.c:373 ../../WPrefs/TextureAndColor.c:404 ../../WPrefs/TextureAndColor.c:435 -msgid "Text Color" -msgstr "Cor do Texto" - -#: ../../WPrefs/TextureAndColor.c:378 ../../WPrefs/TextureAndColor.c:409 ../../WPrefs/TextureAndColor.c:440 ../../WPrefs/TextureAndColor.c:464 ../../WPrefs/TextureAndColor.c:530 ../../WPrefs/TextureAndColor.c:607 -msgid "Set..." -msgstr "Mudar..." - -#: ../../WPrefs/TextureAndColor.c:385 -msgid "Unfocused Window" -msgstr "Janela Inativa" - -#: ../../WPrefs/TextureAndColor.c:416 -msgid "Owner of Focused Window" -msgstr "Dono da Janela Ativa" - -#: ../../WPrefs/TextureAndColor.c:449 -msgid "Unselected Items" -msgstr "Itens não Selecionados" - -#: ../../WPrefs/TextureAndColor.c:459 ../../WPrefs/TextureAndColor.c:513 -msgid "Background" -msgstr "Fundo" - -#: ../../WPrefs/TextureAndColor.c:474 -msgid "Normal Text" -msgstr "Texto Normal" - -#: ../../WPrefs/TextureAndColor.c:484 -msgid "Disabled Text" -msgstr "Text Desativado" - -#: ../../WPrefs/TextureAndColor.c:493 -msgid "Selected Items" -msgstr "Itens Selecionados" - -#: ../../WPrefs/TextureAndColor.c:503 -msgid "Text" -msgstr "Texto" - -#: ../../WPrefs/TextureAndColor.c:521 -msgid "Menu Title Background" -msgstr "Fundo de Título de Menu" - -#: ../../WPrefs/TextureAndColor.c:539 -msgid "Menu Title Text" -msgstr "Texto de Título de Menu" - -#: ../../WPrefs/TextureAndColor.c:551 -msgid "Workspace Background" -msgstr "Fundo de Área de Trabalho" - -#: ../../WPrefs/TextureAndColor.c:560 -msgid "Change" +#: ../../WPrefs.app/Themes.c:71 ../../WPrefs.app/Themes.c:82 +msgid "Set" msgstr "Mudar" -#: ../../WPrefs/TextureAndColor.c:566 -msgid "Clip Title Text" -msgstr "Texto do Título do Clip" +#: ../../WPrefs.app/Themes.c:132 +msgid "Stop" +msgstr "Parar" -#: ../../WPrefs/TextureAndColor.c:576 -msgid "Normal" -msgstr "" +#: ../../WPrefs.app/Themes.c:143 ../../WPrefs.app/Themes.c:205 +#: ../../WPrefs.app/Themes.c:225 +msgid "Download" +msgstr "Download" -#: ../../WPrefs/TextureAndColor.c:586 -msgid "Collapsed" -msgstr "Colapsado" +#: ../../WPrefs.app/Themes.c:173 +msgid "Save Current Theme" +msgstr "Salvar Tema Corrente" -#: ../../WPrefs/TextureAndColor.c:598 -msgid "Icon Background" -msgstr "Fundo de Ícone" +#: ../../WPrefs.app/Themes.c:182 +msgid "Load" +msgstr "Carregar" -#: ../../WPrefs/TextureAndColor.c:632 -msgid "Texture and Color Preferences" -msgstr "Preferências de Cor e Textura" +#: ../../WPrefs.app/Themes.c:187 +msgid "Install" +msgstr "Instalar" -#: ../../WPrefs/WPrefs.c:194 -msgid "WindowMaker Preferences" +#: ../../WPrefs.app/Themes.c:195 +msgid "Tile of The Day" +msgstr "Azulejo do dia" + +#: ../../WPrefs.app/Themes.c:215 +msgid "Bar of The Day" +msgstr "Barra de título do dia" + +#: ../../WPrefs.app/Themes.c:252 +msgid "Themes" +msgstr "Temas" + +#: ../../WPrefs.app/WPrefs.c:220 +msgid "Window Maker Preferences" msgstr "Preferências do WindowMaker" -#: ../../WPrefs/WPrefs.c:216 +#: ../../WPrefs.app/WPrefs.c:244 msgid "Revert Page" msgstr "Reverter Página" -#: ../../WPrefs/WPrefs.c:222 +#: ../../WPrefs.app/WPrefs.c:250 msgid "Revert All" msgstr "Reverter Tudo" -#: ../../WPrefs/WPrefs.c:228 +#: ../../WPrefs.app/WPrefs.c:256 msgid "Save" msgstr "Salvar" -#: ../../WPrefs/WPrefs.c:234 +#: ../../WPrefs.app/WPrefs.c:262 msgid "Close" msgstr "Fechar" -#: ../../WPrefs/WPrefs.c:258 -msgid "Version %s for WindowMaker %s" +#: ../../WPrefs.app/WPrefs.c:280 +msgid "Window Maker Preferences Utility" +msgstr "Preferências do WindowMaker" + +#: ../../WPrefs.app/WPrefs.c:287 +#, c-format +msgid "Version %s for Window Maker %s" msgstr "Versão %s para WindowMaker %s" -#: ../../WPrefs/WPrefs.c:265 +#: ../../WPrefs.app/WPrefs.c:294 msgid "Starting..." msgstr "Iniciando..." -#: ../../WPrefs/WPrefs.c:271 +#: ../../WPrefs.app/WPrefs.c:300 msgid "" "Programming/Design: Alfredo K. Kojima\n" -"Artwork: Marco van Hylckama Vlieg" +"Artwork: Marco van Hylckama Vlieg\n" +"More Programming: James Thompson" msgstr "" "Programação/Projeto: Alfredo K. Kojima\n" -"Arte: Marco van Hylckama Vlieg" +"Arte: Marco van Hylckama Vlieg\n" +"Mais programação: James Thompson" -#: ../../WPrefs/WPrefs.c:358 +#: ../../WPrefs.app/WPrefs.c:388 +#, c-format msgid "could not locate image file %s\n" msgstr "arquivo de imagem %s não encontrado\n" -#: ../../WPrefs/WPrefs.c:476 -msgid "Loading WindowMaker configuration files..." +#: ../../WPrefs.app/WPrefs.c:501 +msgid "could not load image file %s:%s" +msgstr "arquivo de imagem %s não pôde ser carregado" + +#: ../../WPrefs.app/WPrefs.c:520 +msgid "Loading Window Maker configuration files..." msgstr "Carregando arquivos de configuração do WindowMaker..." -#: ../../WPrefs/WPrefs.c:480 +#: ../../WPrefs.app/WPrefs.c:524 msgid "Initializing configuration panels..." msgstr "Inicializando painéis de configuração..." -#: ../../WPrefs/WPrefs.c:526 ../../WPrefs/WPrefs.c:581 -msgid "WindowMaker domain (%s) is corrupted!" +#: ../../WPrefs.app/WPrefs.c:555 +msgid "" +"WPrefs is free software and is distributed WITHOUT ANY\n" +"WARRANTY under the terms of the GNU General Public License.\n" +"The icons in this program are licensed through the\n" +"OpenContent License." +msgstr "" +"O WPrefs é software livre e distribuído SEM NENHUMA\n" +"GARANTIA pelos termos da GNU General Public License.\n" +"Os ícones neste programa são licenciados pela\n" +"OpenContent License." + +#: ../../WPrefs.app/WPrefs.c:586 ../../WPrefs.app/WPrefs.c:651 +#, c-format +msgid "Window Maker domain (%s) is corrupted!" msgstr "Domínio WindowMaker (%s) corrompido!" -#: ../../WPrefs/WPrefs.c:530 ../../WPrefs/WPrefs.c:585 -msgid "Could not load WindowMaker domain (%s) from defaults database." +#: ../../WPrefs.app/WPrefs.c:590 +#, c-format +msgid "Could not load Window Maker domain (%s) from defaults database." msgstr "Domínio WindowMaker (%s) não pôde ser carregado do BD de defaults." -#: ../../WPrefs/WPrefs.c:538 -msgid "could not extract version information from WindowMaker" +#: ../../WPrefs.app/WPrefs.c:598 +msgid "could not extract version information from Window Maker" msgstr "erro extraindo versão do WindowMaker" -#: ../../WPrefs/WPrefs.c:539 -msgid "Make sure WindowMaker is in your search path." +#: ../../WPrefs.app/WPrefs.c:599 +msgid "Make sure wmaker is in your search path." msgstr "Certifique-se que o WindowMaker está no seu PATH." -#: ../../WPrefs/WPrefs.c:542 -msgid "Could not extract version from WindowMaker. Make sure it is correctly installed." -msgstr "Erro extraindo versão do WindowMaker. Certifique-se que ele está instalado corretamente." - -#: ../../WPrefs/WPrefs.c:551 -msgid "Error extracting version from WindowMaker. Make sure it is correctly installed." -msgstr "" - -#: ../../WPrefs/WPrefs.c:556 +#: ../../WPrefs.app/WPrefs.c:602 msgid "" -"WPrefs only supports WindowMaker 0.18.0 or newer.\n" +"Could not extract version from Window Maker. Make sure it is correctly " +"installed and is in your PATH environment variable." +msgstr "" +"Erro extraindo versão do WindowMaker. Certifique-se que ele está instalado " +"corretamente e está em seu PATH." + +#: ../../WPrefs.app/WPrefs.c:612 +msgid "" +"Could not extract version from Window Maker. Make sure it is correctly " +"installed and the path where it installed is in the PATH environment " +"variable." +msgstr "" +"Erro extraindo versão do WindowMaker. Certifique-se que ele está instalado " +"corretamente e está em seu PATH." + +#: ../../WPrefs.app/WPrefs.c:619 +msgid "" +"WPrefs only supports Window Maker 0.18.0 or newer.\n" "The version installed is %i.%i.%i\n" msgstr "" "WPrefs só suporta WindowMaker 0.18.0 or mais recente.\n" "A versão instalada é %i.%i.%i\n" - -#: ../../WPrefs/WPrefs.c:563 -msgid "WindowMaker %i.%i.%i, which is installed in your system, is not fully supported by this version of WPrefs." -msgstr "O WindowMaker %i.%i.%i, que está instalado em seu sistema, não é totalmente suportado por esta versão do WPrefs." -#: ../../WPrefs/WPrefs.c:570 -msgid "could not run \"wmaker -global_defaults_path\"." +#: ../../WPrefs.app/WPrefs.c:626 +#, c-format +msgid "" +"Window Maker %i.%i.%i, which is installed in your system, is not fully " +"supported by this version of WPrefs." msgstr "" +"O WindowMaker %i.%i.%i, que está instalado em seu sistema, não é totalmente " +"suportado por esta versão do WPrefs." -#: ../../WPrefs/WPrefs.c:828 +#: ../../WPrefs.app/WPrefs.c:628 +msgid "Warning" +msgstr "Aviso" + +#: ../../WPrefs.app/WPrefs.c:633 +msgid "could not run \"wmaker --global_defaults_path\"." +msgstr "não foi possível executar \"wmaker --global_defaults_path\"." + +#: ../../WPrefs.app/WPrefs.c:655 +#, c-format +msgid "Could not load global Window Maker domain (%s)." +msgstr "Domínio WindowMaker global (%s) não pôde ser carregado." + +#: ../../WPrefs.app/WPrefs.c:904 +#, c-format msgid "" "bad speed value for option %s\n" -". Using default Medium" +"Using default Medium" msgstr "" "valor de velocidade inválido para opção %s\n" -"Usando default Medium" +"Usando padrão Medium" -#: ../../WPrefs/WindowHandling.c:108 +#: ../../WPrefs.app/WindowHandling.c:134 +#, c-format msgid "bad option value %s in WindowPlacement. Using default value" msgstr "%s não é valor de WindowPlacement. Usando valor default" -#: ../../WPrefs/WindowHandling.c:130 -msgid "invalid data in option WindowPlacementOrigin. Using default (0,0)" -msgstr "WindowPlaceOrigin" +#: ../../WPrefs.app/WindowHandling.c:156 +msgid "invalid data in option WindowPlaceOrigin. Using default (0,0)" +msgstr "Dado inválido na opção WindowPlaceOrigin. Usando padrão (0,0)" -#: ../../WPrefs/WindowHandling.c:192 +#: ../../WPrefs.app/WindowHandling.c:223 msgid "Window Placement" msgstr "Colocação de Janelas" -#: ../../WPrefs/WindowHandling.c:197 +#: ../../WPrefs.app/WindowHandling.c:228 msgid "Automatic" msgstr "Automático" -#: ../../WPrefs/WindowHandling.c:198 +#: ../../WPrefs.app/WindowHandling.c:229 msgid "Random" msgstr "Randômico" -#: ../../WPrefs/WindowHandling.c:199 +#: ../../WPrefs.app/WindowHandling.c:230 msgid "Manual" -msgstr "" +msgstr "Manual" -#: ../../WPrefs/WindowHandling.c:200 +#: ../../WPrefs.app/WindowHandling.c:231 msgid "Cascade" msgstr "Cascata" -#: ../../WPrefs/WindowHandling.c:206 +#: ../../WPrefs.app/WindowHandling.c:237 msgid "Placement Origin" msgstr "Origem da Colocação" -#: ../../WPrefs/WindowHandling.c:260 +#: ../../WPrefs.app/WindowHandling.c:297 msgid "Opaque Move" -msgstr "" +msgstr "Movimento opaco" -#: ../../WPrefs/WindowHandling.c:296 +#: ../../WPrefs.app/WindowHandling.c:333 msgid "When maximizing..." msgstr "Ao maximizar..." -#: ../../WPrefs/WindowHandling.c:301 -msgid "...do not resize over icons" +#: ../../WPrefs.app/WindowHandling.c:338 +msgid "...do not cover icons" msgstr "...não sobrepor ícones" -#: ../../WPrefs/WindowHandling.c:306 -msgid "...do not resize over dock" +#: ../../WPrefs.app/WindowHandling.c:344 +msgid "...do not cover dock" msgstr "...não sobrepor o dock" -#: ../../WPrefs/WindowHandling.c:319 -msgid "Keep transients above their owners" -msgstr "Manter transients acima dos donos" +#: ../../WPrefs.app/WindowHandling.c:353 +msgid "Edge Resistance" +msgstr "Borda Resistente" -#: ../../WPrefs/WindowHandling.c:346 +#: ../../WPrefs.app/WindowHandling.c:377 +msgid "Open dialogs in same workspace as their owners" +msgstr "Abrir diálogos na mesma área de trabalho que seus donos" + +#: ../../WPrefs.app/WindowHandling.c:404 msgid "Window Handling Preferences" msgstr "Preferências de Manipulação de Janelas" -#: ../../WPrefs/Workspace.c:171 +#: ../../WPrefs.app/Workspace.c:137 msgid "Workspace Navigation" msgstr "Navegação de Áreas de Trabalho" -#: ../../WPrefs/Workspace.c:232 -msgid "Dock/Clip" +#: ../../WPrefs.app/Workspace.c:161 +msgid "drag windows between workspaces." +msgstr "Mover janelas pelas áreas de trabalho." + +#: ../../WPrefs.app/Workspace.c:186 +msgid "" +"switch to first workspace when switching past the last workspace and " +"vice-versa" msgstr "" +"Ir para a primeira área de trabalho quando passar da última e" +"vice-versa" -#: ../../WPrefs/Workspace.c:278 -msgid "Auto-arrange icons" -msgstr "Auto-alinhar ícones" +#: ../../WPrefs.app/Workspace.c:210 +msgid "create a new workspace when switching past the last workspace." +msgstr "criar uma nova área de trabalho quando passar a última." -#: ../../WPrefs/Workspace.c:283 -msgid "Omnipresent miniwindows" -msgstr "Minijanelas onipresentes" +#: ../../WPrefs.app/Workspace.c:218 +msgid "Dock/Clip" +msgstr "Dock/Clip" -#: ../../WPrefs/Workspace.c:291 -msgid "Icon Size" -msgstr "Tamanho do Ícone" - -#: ../../WPrefs/Workspace.c:367 +#: ../../WPrefs.app/Workspace.c:287 msgid "Workspace Preferences" msgstr "Preferências da Área de Trabalho" -#: ../../WPrefs/main.c:56 +#: ../../WPrefs.app/main.c:71 +#, c-format msgid "usage: %s [options]\n" msgstr "uso: %s [opções]\n" -#: ../../WPrefs/main.c:57 +#: ../../WPrefs.app/main.c:72 msgid "options:" msgstr "opções:" -#: ../../WPrefs/main.c:58 +#: ../../WPrefs.app/main.c:73 msgid " -display \tdisplay to be used" msgstr " -display \tdisplay a ser usado" -#: ../../WPrefs/main.c:59 -msgid " -version\t\tprint version number and exit" -msgstr " -version\t\tmostra a versão e cai fora" +#: ../../WPrefs.app/main.c:74 +msgid " --version\t\tprint version number and exit" +msgstr " -version\t\tmostra a versão e sai" -#: ../../WPrefs/main.c:82 +#: ../../WPrefs.app/main.c:75 +msgid " --help\t\tprint this message and exit" +msgstr " -version\t\tmostra a versão e sai" + +#: ../../WPrefs.app/main.c:134 +#, c-format msgid "too few arguments for %s" msgstr "falta de argumentos para %s" -#: ../../WPrefs/main.c:104 +#: ../../WPrefs.app/main.c:156 msgid "X server does not support locale" -msgstr "" +msgstr "Servidor X não suporta locales" -#: ../../WPrefs/main.c:107 +#: ../../WPrefs.app/main.c:159 msgid "cannot set locale modifiers" -msgstr "" +msgstr "Impossível configurar modificadores de locale" -#: ../../WPrefs/main.c:113 +#: ../../WPrefs.app/main.c:165 +#, c-format msgid "could not open display %s" msgstr "display %s não pôde ser aberto" -#: ../../WPrefs/main.c:121 +#: ../../WPrefs.app/main.c:173 msgid "could not initialize application" -msgstr "" +msgstr "impossível inicializar aplicação" diff --git a/po/README b/po/README index d597a589..937ea383 100644 --- a/po/README +++ b/po/README @@ -5,7 +5,7 @@ File Language Note Current Maintainer ------------------------------------------------------------------------------ ja.po Japanese 1 ABE Shige MANOME Tomonori -pt.po Portuguese Alfredo K. Kojima +pt.po Portuguese Eliphas Levy Theodoro de.po German Carsten Schaar es.po Spanish Raul Benito Garcia diff --git a/po/pt.po b/po/pt.po index 9cd3cfec..66b6297d 100644 --- a/po/pt.po +++ b/po/pt.po @@ -1,29 +1,1137 @@ # Portuguese message file for WindowMaker # Last Update: version 0.17.3 # +# Update History: +# Alfredo Kojima +# Eliphas Levy Theodoro # msgid "" msgstr "" -"Date: 1997-06-02 13:43:55-0300\n" -"From: Alfredo K. Kojima \n" +"Project-Id-Version: 0.52.0\n" +"POT-Creation-Date: 1997-06-02 13:43:55-0300\n" +"PO-Revision-Date: 1999-04-01 18:16-0300\n" "Language-Team: Portuguese \n" -"Content-Type: text/plain; charset=iso8859-1\n" -"Xgettext-Options: --default-domain=WindowMaker --add-comments --keyword=_\n" -"Files: ../main.c ../event.c ../window.c ../startup.c ../shutdown.c ../wcore.c ../properties.c ../texture.c ../actions.c ../menu.c ../client.c ../pixmap.c ../image.c ../gradient.c ../button.c ../screen.c ../icon.c ../rootmenu.c ../dialog.c ../resource.c ../moveres.c ../application.c ../colormap.c ../raster.c ../placement.c ../misc.c ../appmenu.c ../keybind.c ../stacking.c ../appicon.c ../switchmenu.c ../dock.c ../winmenu.c\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8-bit\n" +"From: Eliphas Levy Theodoro \n" +"MIME-Version: 1.0\n" -#: ../src/appicon.c:542 ../src/dialog.c:273 ../src/dialog.c:329 ../src/dock.c:262 ../src/dock.c:2994 ../src/rootmenu.c:162 ../src/winspector.c:269 ../src/winspector.c:277 + +"Xgettext-Options: --default-domain=WindowMaker --add-comments --keyword=_\n" +"Files: ../main.c ../event.c ../window.c ../startup.c ../shutdown.c " +"../wcore.c ../properties.c ../texture.c ../actions.c ../menu.c ../client.c " +"../pixmap.c ../image.c ../gradient.c ../button.c ../screen.c ../icon.c " +"../rootmenu.c ../dialog.c ../resource.c ../moveres.c ../application.c " +"../colormap.c ../raster.c ../placement.c ../misc.c ../appmenu.c ../keybind.c " +"../stacking.c ../appicon.c ../switchmenu.c ../dock.c ../winmenu.c\n" + +#: ../src/appicon.c:540 ../src/dialog.c:216 ../src/dialog.c:272 +#: ../src/dock.c:3079 ../src/dockedapp.c:210 ../src/rootmenu.c:1741 +#: ../src/winspector.c:283 ../src/winspector.c:299 msgid "Error" msgstr "Erro" -#: ../src/appicon.c:543 ../src/dock.c:263 ../src/winspector.c:278 +#: ../src/appicon.c:541 msgid "Could not open specified icon file" msgstr "O ícone especificado não pôde ser aberto" -#: ../src/appicon.c:563 ../src/dock.c:508 ../src/winmenu.c:83 +#: ../src/appicon.c:542 ../src/dialog.c:115 ../src/dialog.c:216 +#: ../src/dialog.c:272 ../src/dialog.c:460 ../src/dock.c:438 +#: ../src/dock.c:3080 ../src/dockedapp.c:210 ../src/dockedapp.c:354 +#: ../src/rootmenu.c:1745 ../src/winspector.c:284 ../src/winspector.c:300 +msgid "OK" +msgstr "Ok" + +#: ../src/appicon.c:569 ../src/dock.c:281 +msgid "" +" will be forcibly closed.\n" +"Any unsaved changes will be lost.\n" +"Please confirm." +msgstr "" +"A aplicação será finalizada (kill).\n" +"Quaisquer modificações não salvas serão perdidas.\n" +"Confirme por favor." + +#: ../src/appicon.c:575 ../src/dock.c:286 ../src/winmenu.c:124 msgid "Kill Application" msgstr "Matar Aplicação" -#: ../src/appicon.c:564 ../src/dock.c:509 ../src/winmenu.c:84 +#: ../src/appicon.c:576 ../src/dock.c:287 ../src/winmenu.c:126 +msgid "Yes" +msgstr "Sim" + +#: ../src/appicon.c:576 ../src/dock.c:287 ../src/winmenu.c:126 +msgid "No" +msgstr "Não" + +#: ../src/appicon.c:594 ../src/dock.c:1074 +msgid "Unhide Here" +msgstr "Mostrar Aqui" + +#: ../src/appicon.c:595 ../src/appicon.c:620 ../src/dock.c:1076 +#: ../src/dock.c:1078 ../src/dock.c:3205 ../src/dock.c:3207 +#: ../src/winmenu.c:446 +msgid "Hide" +msgstr "Esconder" + +#: ../src/appicon.c:596 +msgid "Set Icon..." +msgstr "Mudar ícone..." + +#: ../src/appicon.c:597 ../src/dock.c:1082 ../src/rootmenu.c:226 +#: ../src/rootmenu.c:240 ../src/winmenu.c:493 +msgid "Kill" +msgstr "Destruir" + +#: ../src/appicon.c:618 ../src/dock.c:3203 +msgid "Unhide" +msgstr "Mostrar" + +#: ../src/defaults.c:780 ../src/startup.c:735 ../src/startup.c:753 +#: ../src/startup.c:759 +#, c-format +msgid "could not read domain \"%s\" from defaults database" +msgstr "domínio \"%s\" do banco de padrões não pôde ser aberto" + +#: ../src/defaults.c:826 ../src/defaults.c:950 ../src/defaults.c:989 +#: ../src/defaults.c:1019 +#, c-format +msgid "Domain %s (%s) of defaults database is corrupted!" +msgstr "Domínio %s (%s) de dados padrão está corrompido!" + +#: ../src/defaults.c:831 ../src/defaults.c:971 ../src/defaults.c:1002 +#: ../src/defaults.c:1028 +msgid "could not load domain %s from user defaults database" +msgstr "domínio %s do banco de padrões não pôde ser aberto" + +#: ../src/defaults.c:842 ../src/defaults.c:935 +#, c-format +msgid "Domain %s (%s) of global defaults database is corrupted!" +msgstr "Domínio %s (%s) do banco de padrões globais está corrompido!" + +#: ../src/defaults.c:861 ../src/defaults.c:940 +msgid "could not load domain %s from global defaults database" +msgstr "domínio %s do banco de padrões não pôde ser aberto" + +#: ../src/defaults.c:1340 +#, c-format +msgid "wrong option value for key \"%s\". Should be one of %s" +msgstr "Formato de opção inválido para \"%s\". Deveria ser %s" + +#: ../src/defaults.c:1387 +#, c-format +msgid "can't convert \"%s\" to boolean for key \"%s\"" +msgstr "valor não booleano \"%s\" em \"%s\"" + +#: ../src/defaults.c:1392 ../src/defaults.c:1426 ../src/defaults.c:1458 +#: ../src/defaults.c:1471 ../src/defaults.c:1486 ../src/defaults.c:1500 +#: ../src/defaults.c:1572 ../src/defaults.c:1584 ../src/defaults.c:1990 +#: ../src/defaults.c:2007 ../src/defaults.c:2020 ../src/defaults.c:2053 +#: ../src/defaults.c:2069 ../src/defaults.c:2100 ../src/defaults.c:2188 +#, c-format +msgid "using default \"%s\" instead" +msgstr "usando \"%s\" como padrão" + +#: ../src/defaults.c:1423 +#, c-format +msgid "can't convert \"%s\" to integer for key \"%s\"" +msgstr "valor não numérico \"%s\" em \"%s\"" + +#: ../src/defaults.c:1453 ../src/defaults.c:1567 ../src/defaults.c:1985 +#: ../src/defaults.c:2002 ../src/defaults.c:2048 ../src/defaults.c:2095 +#: ../src/wdefaults.c:546 ../src/wdefaults.c:582 +#, c-format +msgid "Wrong option format for key \"%s\". Should be %s." +msgstr "Formato de opção inválido para \"%s\". Deveria ser %s." + +#: ../src/defaults.c:1466 +#, c-format +msgid "Incorrect number of elements in array for key \"%s\"." +msgstr "Número de elementos incorreto na lista da opção \"%s\"." + +#: ../src/defaults.c:1481 +#, c-format +msgid "Wrong value for key \"%s\". Should be Coordinate." +msgstr "Valor incorreto para \"%s\". Deveriam ser coordenadas." + +#: ../src/defaults.c:1496 +#, c-format +msgid "can't convert array to integers for \"%s\"." +msgstr "lista de números inválido na opção \"%s\"" + +#: ../src/defaults.c:1694 ../src/defaults.c:1726 ../src/defaults.c:1742 +#: ../src/defaults.c:1788 ../src/defaults.c:1828 ../src/defaults.c:1866 +#: ../src/defaults.c:1882 +#, c-format +msgid "\"%s\" is not a valid color name" +msgstr "\"%s\" não é um nome de cor válido" + +#: ../src/defaults.c:1707 +msgid "bad number of arguments in gradient specification" +msgstr "número de argumentos inválido na especificação de gradiente" + +#: ../src/defaults.c:1761 +msgid "too few arguments in multicolor gradient specification" +msgstr "cores insuficientes para gradiente multicores" + +#: ../src/defaults.c:1855 +msgid "bad number of arguments in textured gradient specification" +msgstr "número de argumentos inválido na especificação de gradiente" + +#: ../src/defaults.c:1898 +#, c-format +msgid "bad opacity value for tgradient texture \"%s\". Should be [0..255]" +msgstr "" + +#: ../src/defaults.c:1958 +#, c-format +msgid "could not initialize library %s" +msgstr "erro inicializando biblioteca %s" + +#: ../src/defaults.c:1961 +#, c-format +msgid "could not find function %s::%s" +msgstr "função %s::%s não pôde ser encontrada" + +#: ../src/defaults.c:1968 +#, c-format +msgid "invalid texture type %s" +msgstr "Textura inválida: %s" + +#: ../src/defaults.c:2015 +#, c-format +msgid "Error in texture specification for key \"%s\"" +msgstr "especificação de textura inválida para opção \"%s\"" + +#: ../src/defaults.c:2065 +msgid "Wrong type for workspace background. Should be a texture type." +msgstr "Valor inválido para fundo de área de trabalho. Deve ser uma textura." + +#: ../src/defaults.c:2113 +#, c-format +msgid "Wrong type for background of workspace %i. Should be a texture." +msgstr "Tipo inválido para o fundo da área de trabalho %i. Deve ser uma textura." + +#: ../src/defaults.c:2154 +msgid "could not load any usable font!!!" +msgstr "não foi possível carregar nenhuma fonte!!!" + +#: ../src/defaults.c:2183 +#, c-format +msgid "could not get color for key \"%s\"" +msgstr "falta uma cor na opção \"%s\"" + +#: ../src/defaults.c:2242 ../src/rootmenu.c:491 +#, c-format +msgid "%s:invalid key modifier \"%s\"" +msgstr "%s:modificador de tecla de atalho inválido \"%s\"" + +#: ../src/defaults.c:2254 +#, c-format +msgid "%s:invalid kbd shortcut specification \"%s\"" +msgstr "%s:tecla de atalho inválido \"%s\"" + +#: ../src/defaults.c:2261 +#, c-format +msgid "%s:invalid key in shortcut \"%s\"" +msgstr "%s:tecla inválida no atalho \"%s\"" + +#: ../src/defaults.c:2287 +#, c-format +msgid "%s: modifier key %s is not valid" +msgstr "%s: tecla modificadora %s não é válida" + +#: ../src/defaults.c:2321 +#, c-format +msgid "could not load image in option %s: %s" +msgstr "Erro carregando arquivo de imagem na opção %s: %s" + +#: ../src/defaults.c:2403 +msgid "could not render texture for icon background" +msgstr "a textura de fundo de ícone não pôde ser gerado" + +#: ../src/dialog.c:115 ../src/dialog.c:467 ../src/dock.c:438 +#: ../src/dockedapp.c:360 ../src/rootmenu.c:188 ../src/rootmenu.c:226 +#: ../src/rootmenu.c:240 +msgid "Cancel" +msgstr "Cancelar" + +#: ../src/dialog.c:211 +msgid "Could not open directory " +msgstr "Erro abrindo diretório " + +#: ../src/dialog.c:267 +msgid "Could not load image file " +msgstr "Erro carregando arquivo de imagem " + +#: ../src/dialog.c:404 +msgid "Directories" +msgstr "Diretórios" + +#: ../src/dialog.c:413 +msgid "Icons" +msgstr "Ícones" + +#: ../src/dialog.c:450 +msgid "File Name:" +msgstr "Nome de arquivo:" + +#: ../src/dialog.c:473 +msgid "Choose File" +msgstr "Escolher Arquivo" + +#: ../src/dialog.c:490 ../src/dialog.c:492 +msgid "Icon Chooser" +msgstr "Seletor de Ícones" + +#: ../src/dock.c:215 +#, c-format +msgid "Type the name for workspace %i:" +msgstr "Digite o nome para a área de trabalho %i:" + +#: ../src/dock.c:216 ../src/dock.c:1053 +msgid "Rename Workspace" +msgstr "Renomear Área de Trabalho" + +#: ../src/dock.c:436 +msgid "Workspace Clip" +msgstr "Clip" + +#: ../src/dock.c:437 +msgid "All selected icons will be removed!" +msgstr "Todos os ícones selecionados serão removidos!" + +#: ../src/dock.c:484 +msgid "Keep Icon" +msgstr "Manter Ícone" + +#: ../src/dock.c:485 ../src/dock.c:1987 ../src/dock.c:2116 +msgid "Type the command used to launch the application" +msgstr "Digite o comando usado para rodar a aplicação" + +#: ../src/dock.c:866 +#, c-format +msgid "could not launch application %s\n" +msgstr "não foi possível executar aplicação %s\n" + +#: ../src/dock.c:921 +msgid "could not create workspace submenu for Clip menu" +msgstr "não foi possível criar submenu para o menu do Clip" + +#: ../src/dock.c:984 +msgid "could not create options submenu for Clip menu" +msgstr "não foi possível criar submenu para o menu do Clip" + +#: ../src/dock.c:988 ../src/dock.c:1042 ../src/winmenu.c:388 +msgid "Keep on top" +msgstr "Manter sobre outros" + +#: ../src/dock.c:994 +msgid "Collapsed" +msgstr "Encolhido" + +#: ../src/dock.c:1000 +msgid "AutoCollapse" +msgstr "AutoColapsar" + +#: ../src/dock.c:1006 +msgid "AutoRaiseLower" +msgstr "AutoLevantar/Abaixar" + +#: ../src/dock.c:1012 +msgid "AutoAttract Icons" +msgstr "AutoAtrair Ícones" + +#: ../src/dock.c:1018 +msgid "Keep Attracted Icons" +msgstr "Manter Ícones Atraídos" + +#: ../src/dock.c:1048 +msgid "Clip Options" +msgstr "Opções do Clip" + +#: ../src/dock.c:1055 +msgid "(Un)Select Icon" +msgstr "(De)selecionar Ícone" + +#: ../src/dock.c:1057 +msgid "(Un)Select All Icons" +msgstr "(De)selecionar Todos Ícones" + +#: ../src/dock.c:1060 +msgid "Keep Icon(s)" +msgstr "Manter Ícone(s)" + +#: ../src/dock.c:1062 +msgid "Move Icon(s) To" +msgstr "Mover Ícone(s) Para" + +#: ../src/dock.c:1067 +msgid "Remove Icon(s)" +msgstr "Remover Ícone(s)" + +#: ../src/dock.c:1069 +msgid "Attract Icons" +msgstr "Atrair Ícones" + +#: ../src/dock.c:1072 +msgid "Launch" +msgstr "Lançar" + +#: ../src/dock.c:1080 +msgid "Settings..." +msgstr "Configurar..." + +#: ../src/dock.c:1465 ../src/dock.c:1479 ../src/dock.c:1493 ../src/dock.c:1503 +#, c-format +msgid "bad value in docked icon state info %s" +msgstr "valor inválido %s em arquivo estado do dock" + +#: ../src/dock.c:1511 +#, c-format +msgid "bad value in docked icon position %i,%i" +msgstr "valor de posição de ícone no dock inválido %i,%i" + +#: ../src/dock.c:1754 +msgid "there are too many icons stored in dock. Ignoring what doesn't fit" +msgstr "excesso de ícones no dock. Ignorando o que não cabe" + +#. icon->forced_dock = 1; +#: ../src/dock.c:1986 ../src/dock.c:2115 +msgid "Dock Icon" +msgstr "Docar Ícone" + +#: ../src/dock.c:3072 ../src/dock.c:3076 +#, c-format +msgid "Could not execute command \"%s\"" +msgstr "Comando \"%s\" não pôde ser executado" + +#: ../src/dockedapp.c:130 +#, c-format +msgid "could not find icon %s, used in a docked application" +msgstr "Ícone %s não encontrado, usado em uma aplicação dock" + +#: ../src/dockedapp.c:209 +#, c-format +msgid "Could not open specified icon file:%s" +msgstr "O arquivo de ícone %s não pôde ser aberto" + +#: ../src/dockedapp.c:295 +msgid "Start when WindowMaker is started" +msgstr "Iniciar junto com o WindowMaker" + +#: ../src/dockedapp.c:302 +msgid "Application path and arguments" +msgstr "Caminho da aplicação e argumentos" + +#: ../src/dockedapp.c:313 +msgid "Command for files dropped with DND" +msgstr "Comando para arqs.largados por DND" + +#: ../src/dockedapp.c:325 +#, c-format +msgid "%d will be replaced with the file name" +msgstr "%d será substituído pelo nome de arquivo" + +#: ../src/dockedapp.c:329 +msgid "DND support was not compiled in" +msgstr "suporte para DND não foi compilado" + +#: ../src/dockedapp.c:335 +msgid "Icon Image" +msgstr "Imagem de ícone" + +#: ../src/dockedapp.c:347 ../src/winspector.c:1244 +msgid "Browse..." +msgstr "Escolher..." + +#: ../src/dockedapp.c:392 +msgid "Docked Application Settings" +msgstr "Configuração de Aplicação no Dock" + +#: ../src/framewin.c:489 +#, c-format +msgid "could not render gradient: %s" +msgstr "erro na geração do degradé: %s" + +#: ../src/framewin.c:505 ../src/framewin.c:520 ../src/framewin.c:531 +#: ../src/framewin.c:538 ../src/framewin.c:545 ../src/icon.c:296 +#: ../src/texture.c:678 +#, c-format +msgid "error rendering image:%s" +msgstr "erro na conversão da imagem:%s" + +#: ../src/icon.c:182 ../src/wdefaults.c:416 +#, c-format +msgid "error loading image file \"%s\"" +msgstr "erro carregando imagem \"%s\"" + +#: ../src/icon.c:423 ../src/icon.c:432 +#, c-format +msgid "could not create directory %s" +msgstr "Erro criando diretório %s" + +#: ../src/icon.c:699 +#, c-format +msgid "could not find default icon \"%s\"" +msgstr "ícone padrão \"%s\" não pôde ser encontrado" + +#: ../src/icon.c:705 +#, c-format +msgid "could not load default icon \"%s\":%s" +msgstr "ícone padrão \"%s\" não pôde ser carregado" + +#: ../src/main.c:195 +msgid "could not exec window manager" +msgstr "Erro ao executar gerenciador de janelas" + +#: ../src/main.c:196 +msgid "Restart failed!!!" +msgstr "Falha na reinicialização!!!" + +#: ../src/main.c:243 +#, c-format +msgid "%s aborted.\n" +msgstr "%s abortado.\n" + +#: ../src/main.c:254 +#, c-format +msgid "Usage: %s [options]\n" +msgstr "utilização: %s [-opções]\n" + +#: ../src/main.c:255 +msgid "The Window Maker window manager for the X window system" +msgstr "O gerenciador de janelas Window Maker para o sistema X" + +#: ../src/main.c:257 +msgid " -display host:dpy\tdisplay to use" +msgstr " -display host:dpy\tdisplay a ser usado" + +#: ../src/main.c:259 +msgid " --no-cpp \t\tdisable preprocessing of configuration files" +msgstr " --no-cpp \t\tdesativa preprocessamento de arquivos de configuração" + +#: ../src/main.c:261 +msgid " --no-dock\t\tdo not open the application Dock" +msgstr " --no-dock\t\tdesabilitar o Dock" + +#: ../src/main.c:262 +msgid " --no-clip\t\tdo not open the workspace Clip" +msgstr " --no-clip\t\tdesabilitar o Clip" + +#. +#. puts(_(" --locale locale locale to use")); +#. +#: ../src/main.c:266 +msgid " --visual-id visualid\tvisual id of visual to use" +msgstr " --visual-id visualid\tvisual id do visual a usar" + +#: ../src/main.c:267 +msgid " --static\t\tdo not update or save configurations" +msgstr " --static\t\tnão salve ou atualiza configurações" + +#: ../src/main.c:268 +msgid " --version\t\tprint version and exit" +msgstr " --version\t\tmostra versão e sai" + +#: ../src/main.c:269 +msgid " --help\t\t\tshow this message" +msgstr " --help\t\t\tmostra esta mensagem" + +#: ../src/main.c:281 +#, c-format +msgid "" +"could not find user GNUstep directory (%s).\n" +"Make sure you have installed Window Maker correctly and run wmaker.inst" +msgstr "" +"diretório GNUstep pessoal não pôde ser encontrado.\n" +"Certifique-se de que WindowMaker está instalado corretamente e execute " +"wmaker.inst" + +#: ../src/main.c:300 +#, c-format +msgid "%s:could not execute initialization script" +msgstr "%s:não foi possível executar script de inicialização" + +#: ../src/main.c:317 +#, c-format +msgid "%s:could not execute exit script" +msgstr "%s:não foi possível executar script de saída" + +#: ../src/main.c:378 ../src/main.c:385 ../src/main.c:393 ../src/main.c:409 +#, c-format +msgid "too few arguments for %s" +msgstr "parâmetros insuficientes para %s" + +#: ../src/main.c:397 +#, c-format +msgid "bad value for visualid: \"%s\"" +msgstr "valor inválido de visualID: \"%s\"" + +#: ../src/main.c:417 +#, c-format +msgid "%s: invalid argument '%s'\n" +msgstr "%s: argumento inválido '%s'\n" + +#: ../src/main.c:418 +#, c-format +msgid "Try '%s --help' for more information\n" +msgstr "Tente '%s --help' para mais informações\n" + +#: ../src/main.c:461 +msgid "X server does not support locale" +msgstr "servidor X não suporta locale" + +#: ../src/main.c:464 +msgid "cannot set locale modifiers" +msgstr "Não foi possível definir modificadores locale" + +#: ../src/main.c:481 +#, c-format +msgid "could not open display \"%s\"" +msgstr "não foi possível abrir display \"%s\"" + +#: ../src/menu.c:288 +msgid "wrealloc() failed while trying to add menu item" +msgstr "falta de memória durante adição de item em menu" + +#: ../src/misc.c:69 +#, c-format +msgid "could not define value for %s for cpp" +msgstr "não foi possível definir valor de %s para cpp" + +#: ../src/misc.c:99 +#, c-format +msgid "could not get password entry for UID %i" +msgstr "não foi possível achar usernama para UID %i" + +#: ../src/misc.c:123 +#, c-format +msgid "your machine is misconfigured. HOSTNAME is set to %s" +msgstr "sua máquina está mal configurada. Valor de HOSTNAME = %s" + +#: ../src/misc.c:129 +#, c-format +msgid "your machine is misconfigured. HOST is set to %s" +msgstr "sua máquina está mal configurada. Valor de HOST = %s" + +#: ../src/misc.c:770 +msgid "selection timed-out" +msgstr "time-out tentando ler seleção" + +#: ../src/misc.c:786 +msgid "Program Arguments" +msgstr "Parâmetros do Programa" + +#: ../src/misc.c:787 +msgid "Enter command arguments:" +msgstr "Digite os parâmetros do comando:" + +#: ../src/misc.c:885 +msgid "unable to get dropped data from DND drop" +msgstr "impossível receber dados jogados por DND" + +#: ../src/misc.c:893 +msgid "error getting dropped data from DND drop" +msgstr "erro recebendo dados jogados por DND" + +#: ../src/misc.c:899 +msgid "out of memory while getting data from DND drop" +msgstr "falta de memória recuperando dados de drag&drop DND" + +#: ../src/misc.c:944 ../src/misc.c:1079 +#, c-format +msgid "out of memory during expansion of \"%s\"" +msgstr "falta de memória durante expansão de \"%s\"" + +#: ../src/misc.c:998 +msgid "out of memory during expansion of \"%w\"" +msgstr "falta de memória durante expansão de \"%w\"" + +#: ../src/misc.c:1016 +msgid "out of memory during expansion of \"%W\"" +msgstr "falta de memória durante expansão de \"%W\"" + +#: ../src/misc.c:1032 +msgid "out of memory during expansion of \"%a\"" +msgstr "memória insuficiente na expansão de \"%a\"" + +#: ../src/misc.c:1058 +#, c-format +msgid "out of memory during expansion of \"%d\"" +msgstr "falta de memória durante expansão de \"%d\"" + +#: ../src/misc.c:1072 +msgid "selection not available" +msgstr "seleção inexistente" + +#: ../src/misc.c:1144 ../src/misc.c:1150 +#, c-format +msgid "bad window name value in %s state info" +msgstr "nome de janela inválido em %s" + +#: ../src/misc.c:1405 +msgid "could not send message to background image helper" +msgstr "erro mandando mensagem para aplicativo de mudança de fundo" + +#: ../src/pixmap.c:235 +#, c-format +msgid "could not load mask bitmap file \"%s\". Won't use mask" +msgstr "arquivo de bitmap \"%s\" não pôde ser aberto." + +#: ../src/proplist.c:180 +msgid "unterminated string" +msgstr "" + +#: ../src/proplist.c:247 +msgid "unterminated array" +msgstr "" + +#: ../src/proplist.c:256 +msgid "missing , in array or unterminated array" +msgstr "" + +#: ../src/proplist.c:267 +msgid "could not get array element" +msgstr "" + +#: ../src/proplist.c:297 +msgid "unterminated dictionary" +msgstr "" + +#: ../src/proplist.c:315 +msgid "missing dictionary key" +msgstr "" + +#: ../src/proplist.c:317 +msgid "missing dictionary entry key or unterminated dictionary" +msgstr "" + +#: ../src/proplist.c:323 +msgid "error parsing dictionary key" +msgstr "" + +#: ../src/proplist.c:332 +msgid "missing = in dictionary entry" +msgstr "" + +#: ../src/proplist.c:351 +msgid "missing ; in dictionary entry" +msgstr "" + +#: ../src/proplist.c:432 +msgid "was expecting a string, dictionary, data or array." +msgstr "" + +#: ../src/proplist.c:434 +msgid "Comments are not allowed inside WindowMaker owned domain files." +msgstr "" + +#: ../src/proplist.c:453 +#, c-format +msgid "could not open domain file %s" +msgstr "arquivo de domínio %s não pôde ser aberto" + +#: ../src/proplist.c:466 +msgid "extra data after end of file" +msgstr "" + +#: ../src/resources.c:71 +#, c-format +msgid "The following character sets are missing in %s:" +msgstr "Os seguintes conjuntos de caracteres estão faltando em %s:" + +#: ../src/resources.c:76 +#, c-format +msgid "The string \"%s\" will be used in place" +msgstr "A seqüência de caracteres \"%s\" será usada no lugar" + +#: ../src/resources.c:78 +msgid "of any characters from those sets." +msgstr "de qualquer caracter destes conjuntos." + +#: ../src/resources.c:81 +#, c-format +msgid "could not create font set %s. Trying fixed" +msgstr "Não foi possível criar conjunto de fonte %s. Tentando fixed" + +#: ../src/resources.c:98 +#, c-format +msgid "could not load font %s. Trying fixed" +msgstr "fonte %s não pôde ser carregado. Tentando fixed" + +#: ../src/resources.c:136 +#, c-format +msgid "could not parse color \"%s\"" +msgstr "\"%s\" não pode ser reconhecido" + +#: ../src/resources.c:140 +#, c-format +msgid "could not allocate color \"%s\"" +msgstr "cor \"%s\" não pôde ser alocada" + +#: ../src/rootmenu.c:186 ../src/rootmenu.c:188 +msgid "Exit" +msgstr "Sair" + +#: ../src/rootmenu.c:187 +msgid "Exit window manager?" +msgstr "Sair do gerenciador de janelas?" + +#: ../src/rootmenu.c:223 +msgid "Close X session" +msgstr "Fechar sessão do X" + +#: ../src/rootmenu.c:224 +msgid "" +"Close Window System session?\n" +"Kill might close applications with unsaved data." +msgstr "" +"Fechar sessão do sistema de janelas?\n" +"(todos os aplicativos serão fechados)" + +#. +#. entry = wMenuAddCallback(menu, _("Select Shortcut"), NULL, NULL); +#. wMenuEntrySetCascade(menu, entry, makeMakeShortcutMenu(scr)); +#. +#: ../src/rootmenu.c:226 ../src/winmenu.c:486 +msgid "Close" +msgstr "Fechar" + +#: ../src/rootmenu.c:237 +msgid "Kill X session" +msgstr "Fechar sessão do X" + +#: ../src/rootmenu.c:238 +msgid "" +"Kill Window System session?\n" +"(all applications will be closed)" +msgstr "" +"Fechar sessão do sistema de janelas?\n" +"(todos os aplicativos serão fechados)" + +#: ../src/rootmenu.c:504 +#, c-format +msgid "%s:invalid kbd shortcut specification \"%s\" for entry %s" +msgstr "%s:tecla de atalho inválido \"%s\" para entrada %s" + +#: ../src/rootmenu.c:512 +#, c-format +msgid "%s:invalid key in shortcut \"%s\" for entry %s" +msgstr "%s:tecla inválida no atalho \"%s\" para entrada %s" + +#: ../src/rootmenu.c:565 +#, c-format +msgid "%s: unmatched '\"' in menu file" +msgstr "%s: '\"' não fechado no arquivo de menu" + +#: ../src/rootmenu.c:615 +#, c-format +msgid "%s: missing command" +msgstr "%s: falta o comando" + +#: ../src/rootmenu.c:648 +#, c-format +msgid "invalid OPEN_MENU specification: %s" +msgstr "especificação de OPEN_MENU inválido: %s" + +#: ../src/rootmenu.c:696 +#, c-format +msgid "%s:could not stat menu" +msgstr "%s:menu não pôde ser acessado" + +#: ../src/rootmenu.c:704 +#, c-format +msgid "%s:could not stat menu:%s" +msgstr "%s:menu não pôde ser acessado: %s" + +#: ../src/rootmenu.c:722 +#, c-format +msgid "too many parameters in OPEN_MENU: %s" +msgstr "excesso de parâmetros em OPEN_MENU: %s" + +#: ../src/rootmenu.c:758 +msgid "" +"There are more than one WORKSPACE_MENU commands in the applications menu. " +"Only one is allowed." +msgstr "" + +#: ../src/rootmenu.c:787 ../src/rootmenu.c:805 +#, c-format +msgid "%s:missing parameter for menu command \"%s\"" +msgstr "%s:falta parâmetro no comando de menu \"%s\"" + +#: ../src/rootmenu.c:868 +#, c-format +msgid "%s:unknown command \"%s\" in menu config." +msgstr "%s:comando inválido \"%s\" na configuração do menu." + +#: ../src/rootmenu.c:876 +#, c-format +msgid "%s:can't add shortcut for entry \"%s\"" +msgstr "%s:\"%s\" não pode ter tecla de atalho" + +#: ../src/rootmenu.c:1013 +#, c-format +msgid "%s:maximal line size exceeded in menu config: %s" +msgstr "%s:linha muito comprida no arquivo de menu: %s" + +#: ../src/rootmenu.c:1035 ../src/rootmenu.c:1127 ../src/rootmenu.c:1228 +#, c-format +msgid "%s:missing command in menu config: %s" +msgstr "%s:falta o comando no menu \"%s\"" + +#: ../src/rootmenu.c:1065 +#, c-format +msgid "%s:syntax error in menu file:END declaration missing" +msgstr "%s:erro de sintaxe no menu:falta um END" + +#: ../src/rootmenu.c:1094 ../src/rootmenu.c:1193 +msgid "could not make arguments for menu file preprocessor" +msgstr "não foi possível criar parâmetros para o preprocessador para menu" + +#: ../src/rootmenu.c:1100 ../src/rootmenu.c:1200 +#, c-format +msgid "%s:could not open/preprocess menu file" +msgstr "%s:não foi possível abrir/preprocessar arquivo de menu" + +#: ../src/rootmenu.c:1112 ../src/rootmenu.c:1213 +#, c-format +msgid "%s:could not open menu file" +msgstr "%s:arquivo de menu não pôde ser aberto" + +#: ../src/rootmenu.c:1139 +#, c-format +msgid "%s:invalid menu file. MENU command is missing" +msgstr "%s:arquivo de menu inválido. Comando MENU não existe" + +#: ../src/rootmenu.c:1148 +msgid "error reading preprocessed menu data" +msgstr "" + +#: ../src/rootmenu.c:1240 +#, c-format +msgid "%s:no title given for the root menu" +msgstr "%s:falta o título do menu de aplicações" + +#: ../src/rootmenu.c:1323 ../src/rootmenu.c:1390 ../src/rootmenu.c:1434 +#, c-format +msgid "out of memory while constructing directory menu %s" +msgstr "faltou memória durante construção do menu de diretório %s" + +#: ../src/rootmenu.c:1333 +#, c-format +msgid "%s:could not stat file \"%s\" in menu directory" +msgstr "$s:arquivo \"%s\" não pôde ser acessado no menu de diretório" + +#: ../src/rootmenu.c:1488 +msgid "Commands" +msgstr "Comandos" + +#: ../src/rootmenu.c:1491 +msgid "Restart" +msgstr "Reiniciar" + +#: ../src/rootmenu.c:1492 +msgid "Exit..." +msgstr "Sair..." + +#: ../src/rootmenu.c:1537 +#, c-format +msgid "could not find menu file \"%s\" referenced in WMRootMenu" +msgstr "arquivo de menu \"%s\" não encontrado" + +#: ../src/rootmenu.c:1544 +#, c-format +msgid "could not access menu \"%s\" referenced in WMRootMenu" +msgstr "" + +#: ../src/rootmenu.c:1555 +#, c-format +msgid "" +"using default menu file \"%s\" as the menu referenced in WMRootMenu could " +"not be found " +msgstr "" +"usando menu padrão \"%s\" pois o menu referenciado no arquivo WMRootMenu " +"não foi encontrado " + +#: ../src/rootmenu.c:1578 ../src/rootmenu.c:1654 +#, c-format +msgid "%s:format error in root menu configuration \"%s\"" +msgstr "%s:erro no formato do arquivo de configuração de menu \"%s\"" + +#: ../src/rootmenu.c:1742 +msgid "" +"The applications menu could not be loaded.Look at the console output for a " +"detaileddescription of the errors" +msgstr "" + +#: ../src/screen.c:433 +#, c-format +msgid "could not load logo image for panels: %s" +msgstr "arquivo de logo para painéis não pôde ser aberto: %s" + +#: ../src/screen.c:437 +#, c-format +msgid "error making logo image for panel:%s" +msgstr "erro na geração do logo para janelas:%s" + +#: ../src/screen.c:710 +#, c-format +msgid "could not initialize graphics library context: %s" +msgstr "erro inicializando contexto da biblioteca gráfica: %s" + +#: ../src/screen.c:741 +msgid "could not do initialization of WINGs widget set" +msgstr "não foi possível executar widget set WINGs" + +#: ../src/screen.c:1073 +#, c-format +msgid "could not save session state in %s" +msgstr "erro ao salvar sessão em %s" + +#: ../src/session.c:182 ../src/wdefaults.c:564 ../src/winspector.c:347 +#, c-format +msgid "can't convert \"%s\" to boolean" +msgstr "\"%s\" não é um valor booleano" + +#: ../src/session.c:873 +msgid "out of memory while saving session state" +msgstr "faltou memória ao salvar a sessão" + +#: ../src/session.c:964 +msgid "end of memory while saving session state" +msgstr "faltou memória ao salvar a sessão" + +#. This is not fatal but can mean the session manager exited. +#. * If the session manager exited normally we would get a +#. * Die message, so this probably means an abnormal exit. +#. * If the sm was the last client of session, then we'll die +#. * anyway, otherwise we can continue doing our stuff. +#. +#: ../src/session.c:1098 +msgid "connection to the session manager was lost" +msgstr "" + +#: ../src/stacking.c:72 +msgid "could not get window list!!" +msgstr "" + +#: ../src/startup.c:195 +#, c-format +msgid "internal X error: %s\n" +msgstr "erro interno de X: %s\n" + +#: ../src/startup.c:259 +#, c-format +msgid "got signal %i (%s) - restarting\n" +msgstr "sinal %i (%s) recebido - reiniciando\n" + +#: ../src/startup.c:261 +#, c-format +msgid "got signal %i - restarting\n" +msgstr "sinal %i recebido - reiniciando\n" + +#: ../src/startup.c:276 +#, c-format +msgid "got signal %i (%s) - exiting...\n" +msgstr "sinal %i (%s) recebido - saindo...\n" + +#: ../src/startup.c:278 +#, c-format +msgid "got signal %i - exiting...\n" +msgstr "sinal %i recebido - saindo...\n" + +#: ../src/startup.c:291 +#, c-format +msgid "got signal %i (%s)\n" +msgstr "signal %i recebido (%s)\n" + +#: ../src/startup.c:293 +#, c-format +msgid "got signal %i\n" +msgstr "signal %i recebido\n" + +#: ../src/startup.c:299 +msgid "" +"crashed while trying to do some post-crash cleanup. Aborting immediatelly." +msgstr "" + +#: ../src/startup.c:310 +msgid "" +"a fatal error has occured, probably due to a bug. Please fill the included " +"BUGFORM and report it." +msgstr "" + +#. restart another window manager so that the X session doesn't +#. * go to space +#: ../src/startup.c:317 +msgid "trying to start alternative window manager..." +msgstr "tentando iniciar gerenciador de janelas alternativo..." + +#: ../src/startup.c:745 +#, c-format +msgid "icon size is configured to %i, but it's too small. Using 16, instead\n" +msgstr "" + +#: ../src/startup.c:789 +msgid "it seems that there already is a window manager running" +msgstr "aparentemente já há um gerenciador de janelas sendo executado" + +#: ../src/startup.c:795 +#, c-format +msgid "could not manage screen %i" +msgstr "não é possível gerenciar janela %i" + +#: ../src/startup.c:855 +msgid "could not manage any screen" +msgstr "não é possível gerenciar qualquer janela" + +#: ../src/switchmenu.c:114 +msgid "Windows" +msgstr "Janelas" + +#: ../src/texture.c:294 ../src/texture.c:338 +#, c-format +msgid "image file \"%s\" used as texture could not be found." +msgstr "arquivo de imagem \"%s\" usado em textura não encontrado." + +#: ../src/texture.c:300 ../src/texture.c:344 +#, c-format +msgid "could not load texture pixmap \"%s\":%s" +msgstr "arquivo de imagem \"%s\" não pôde ser aberto" + +#: ../src/texture.c:404 +#, c-format +msgid "library \"%s\" cound not be opened." +msgstr "biblioteca \"%s\" não pôde ser aberta." + +#: ../src/texture.c:413 +#, c-format +msgid "function \"%s\" not found in library \"%s\"" +msgstr "" + +#: ../src/texture.c:420 +msgid "function textures not supported on this system, sorry." +msgstr "" + +#: ../src/texture.c:552 ../src/texture.c:674 +#, c-format +msgid "could not render texture: %s" +msgstr "erro na geração de textura: %s" + +#: ../src/wdefaults.c:410 +#, c-format +msgid "could not find icon file \"%s\"" +msgstr "ícone de arquivo \"%s\" não encontrado" + +#: ../src/window.c:2499 ../src/window.c:2631 +msgid "" +"the NumLock, ScrollLock or similar key seems to be turned on.\n" +"Turn it off or some mouse actions and keyboard shortcuts will not work." +msgstr "" + +#: ../src/winmenu.c:125 msgid "" "This will kill the application.\n" "Any unsaved changes will be lost.\n" @@ -33,957 +1141,269 @@ msgstr "" "Quaisquer modificações não salvas serão perdidas.\n" "Confirme por favor." -#: ../src/appicon.c:580 ../src/dock.c:1140 -msgid "Unhide Here" -msgstr "Unhidear Aqui" - -#: ../src/appicon.c:581 ../src/dock.c:1138 -msgid "(Un)Hide" -msgstr "(Un)hidear" - -#: ../src/appicon.c:582 -msgid "Set Icon..." -msgstr "Mudar ícone..." - -#: ../src/appicon.c:583 ../src/dock.c:1142 ../src/winmenu.c:245 -msgid "Kill" -msgstr "Destruir" - -#: ../src/defaults.c:552 ../src/screen.c:465 ../src/screen.c:544 ../src/screen.c:550 -msgid "could not read domain \"%s\" from defaults database" -msgstr "domínio \"%s\" do banco de defaults não pôde ser aberto" - -#: ../src/defaults.c:1027 -msgid "can't convert \"%s\" to boolean for key \"%s\"" -msgstr "valor não booleano \"%s\" em \"%s\"" - -#: ../src/defaults.c:1032 ../src/defaults.c:1065 ../src/defaults.c:1097 ../src/defaults.c:1110 ../src/defaults.c:1125 ../src/defaults.c:1140 ../src/defaults.c:1211 ../src/defaults.c:1223 ../src/defaults.c:1277 ../src/defaults.c:1321 ../src/defaults.c:1363 ../src/defaults.c:1409 ../src/defaults.c:1628 ../src/defaults.c:1642 ../src/defaults.c:1675 ../src/defaults.c:1687 ../src/defaults.c:1699 ../src/defaults.c:1723 ../src/defaults.c:1741 ../src/defaults.c:1754 ../src/defaults.c:1767 ../src/defaults.c:1802 ../src/defaults.c:1840 ../src/defaults.c:1904 -msgid "using default \"%s\" instead" -msgstr "usando \"%s\" como default" - -#: ../src/defaults.c:1062 -msgid "can't convert \"%s\" to integer for key \"%s\"" -msgstr "valor não numérico \"%s\" em \"%s\"" - -#: ../src/defaults.c:1092 ../src/defaults.c:1206 ../src/defaults.c:1623 ../src/defaults.c:1670 ../src/wdefaults.c:537 ../src/wdefaults.c:573 -msgid "Wrong option format for key \"%s\". Should be %s." -msgstr "Formato de opção inválido para \"%s\". Deveria ser %s." - -#: ../src/defaults.c:1105 -msgid "Incorrect number of elements in array for key \"%s\"." -msgstr "Número de elementos incorreto na lista da opção \"%s\"." - -#: ../src/defaults.c:1120 -msgid "Wrong value for key \"%s\". Should be Coordinate." -msgstr "Valor incorreto para \"%s\". Deveriam ser coordenadas." - -#: ../src/defaults.c:1135 -msgid "can't convert array to integers for \"%s\"." -msgstr "lista de números inválido na opção \"%s\"" - -#: ../src/defaults.c:1272 -msgid "Invalid focus mode \"%s\". Should be Manual, Auto or Sloppy." -msgstr "Tipo de focu inválido \"%s\". Deveria ser Manual, Auto ou Sloppy." - -#: ../src/defaults.c:1315 -msgid "Invalid window placement mode \"%s\". Should be Auto, Cascade, Random or Manual." -msgstr "Tipo de layout de janela inválido \"%s\". Deve ser Auto, Cascade, Random ou Manual" - -#: ../src/defaults.c:1357 -msgid "Invalid geometry display type \"%s\". Should be Center, Corner, Floating or Line." -msgstr "Tipo de mostrador de geometria inválido \"%s\". Deve ser Center, Corner, Floating ou Line" - -#: ../src/defaults.c:1404 -msgid "Invalid speed \"%s\". Should be UltraFast, Fast, Medium, Slow or UltraSlow." -msgstr "Tipo de velocidade inválido \"%s\". Deve ser UltraFast, Fast, Medium, Slow ou UltraSlow." - -#: ../src/defaults.c:1470 ../src/defaults.c:1501 ../src/defaults.c:1513 ../src/defaults.c:1554 ../src/defaults.c:1590 -msgid "\"%s\" is not a valid color name" -msgstr "\"%s\" não é um nome de cor válido" - -#: ../src/defaults.c:1482 -msgid "bad number of arguments in gradient specification" -msgstr "número de argumentos inválido na especificação de gradient" - -#: ../src/defaults.c:1528 -msgid "too few arguments in multicolor gradient specification" -msgstr "cores insuficientes para gradient multicores" - -#: ../src/defaults.c:1637 -msgid "Error in texture specification for key \"%s\"" -msgstr "especificação de textura inválida para opção \"%s\"" - -#: ../src/defaults.c:1683 ../src/defaults.c:1719 -msgid "Too few elements in array for key \"WorkspaceBack\"." -msgstr "elementos insuficientes na da opção \"WorkspaceBack\"." - -#: ../src/defaults.c:1695 -msgid "Wrong type for workspace background. Should be Texture." -msgstr "Valor inválido para fundo de área de trabalho. Deve ser uma textura" - -#: ../src/defaults.c:1737 -msgid "Cannot get color entry for key \"WorkspaceBack\"." -msgstr "Falta uma cor na opção \"WorkspaceBack\"." - -#: ../src/defaults.c:1749 -msgid "key \"WorkspaceBack\" has invalid color \"%s\"" -msgstr "opção \"WorkspaceBack\" tem uma cor inválida \"%s\"" - -#: ../src/defaults.c:1763 -msgid "Cannot get file entry for key \"WorkspaceBack\"." -msgstr "falta um nome de arquivo na opção \"WorkspaceBack\"." - -#: ../src/defaults.c:1779 -msgid "could not run \"%s\"" -msgstr "não foi possível executar \"%s\"" - -#: ../src/defaults.c:1785 -msgid "could not find background image \"%s\"" -msgstr "fundo de área de trabalho \"%s\" não encontrado" - -#: ../src/defaults.c:1798 -msgid "Error in texture specification for key \"WorkspaceBack\"" -msgstr "especificação inválida de textura na opção \"WorkspaceBack\"" - -#: ../src/defaults.c:1835 -msgid "Invalid justification type \"%s\". Should be Left, Center or Right" -msgstr "Tipo de alinhamento inválido \"%s\". Deve ser Left, Center ou Right" - -#: ../src/defaults.c:1869 -msgid "could not load any usable font" -msgstr "não foi possível carregar nunhum fonte" - -#: ../src/defaults.c:1899 -msgid "could not get color for key \"%s\"" -msgstr "falta uma cor na opção \"%s\"" - -#: ../src/defaults.c:1958 -msgid "invalid key modifier \"%s\"" -msgstr "modificador de tecla inválida \"%s\"" - -#: ../src/defaults.c:1970 -msgid "invalid kbd shortcut specification \"%s\"" -msgstr "especificação de tecla de atalho inválido \"%s\"" - -#: ../src/defaults.c:1976 -msgid "invalid key in shortcut \"%s\"" -msgstr "tecla inválida em atalho \"%s\"" - -#: ../src/defaults.c:2070 -msgid "could not render texture for icon background" -msgstr "a textura de fundo de ícone não pôde ser gerado" - -#: ../src/defaults.c:2416 -msgid "could not render texture for workspace background" -msgstr "a textura de fundo de área de trabalho não pôde ser gerado" - -#: ../src/dialog.c:81 ../src/dialog.c:93 ../src/dialog.c:176 ../src/dialog.c:504 ../src/dock.c:377 -msgid "OK" +#: ../src/winmenu.c:252 ../src/winmenu.c:260 +msgid "Set Shortcut" msgstr "" -#: ../src/dialog.c:81 ../src/dialog.c:86 ../src/dialog.c:176 ../src/dialog.c:511 ../src/dock.c:383 -msgid "Cancel" -msgstr "Cancelar" +#: ../src/winmenu.c:338 ../src/winmenu.c:384 +msgid "could not create submenu for window menu" +msgstr "não foi possível criar submenu para o menu de janela" -#: ../src/dialog.c:86 ../src/rootmenu.c:203 -msgid "Exit" -msgstr "Sair" +#: ../src/winmenu.c:393 +msgid "Keep at bottom" +msgstr "Manter embaixo" -#: ../src/dialog.c:98 -msgid "Yes" -msgstr "Sim" - -#: ../src/dialog.c:98 -msgid "No" -msgstr "Não" - -#: ../src/dialog.c:268 -msgid "Could not open directory " -msgstr "Erro abrindo diretório " - -#: ../src/dialog.c:324 -msgid "Could not load image file " -msgstr "Erro carregando arquivo de imagem " - -#: ../src/dialog.c:450 -msgid "Directories" -msgstr "Diretórios" - -#: ../src/dialog.c:459 -msgid "Icons" -msgstr "Ícones" - -#: ../src/dialog.c:494 -msgid "File Name:" -msgstr "Nome de arquivo:" - -#: ../src/dialog.c:517 -msgid "Choose File" -msgstr "Escolher Arquivo" - -#: ../src/dialog.c:527 -msgid "Icon Chooser" -msgstr "Seletor de Ícones" - -#: ../src/dock.c:318 -msgid "Command Arguments" -msgstr "Argumentos do Comando" - -#: ../src/dock.c:329 -msgid "Command for files dropped by DND" -msgstr "Comando para arqs.largados por DND" - -#: ../src/dock.c:341 -msgid "%d will be replaced with the file name" -msgstr "%s será substituído pelo nome de arquivo" - -#: ../src/dock.c:345 -msgid "DND support was not compiled in" -msgstr "suporte para DND não foi compilado" - -#: ../src/dock.c:351 -msgid "Icon" -msgstr "Ícone" - -#: ../src/dock.c:363 ../src/winspector.c:1154 -msgid "Browse..." -msgstr "Escolher..." - -#: ../src/dock.c:371 -msgid "Launch this application automatically" -msgstr "Lançar esta aplicação automaticamente" - -#: ../src/dock.c:397 -msgid "Docked Application Settings" -msgstr "Configuração de Aplicação no Dock" - -#: ../src/dock.c:553 -msgid "Workspace Clip" -msgstr "" - -#: ../src/dock.c:554 -msgid "All selected icons will be removed!" -msgstr "Todos os ícones selecionados serão removidos!" - -#: ../src/dock.c:601 -msgid "Keep Icon" -msgstr "Manter Ícone" - -#: ../src/dock.c:602 ../src/dock.c:2076 ../src/dock.c:2192 -msgid "Type the command used to launch the application" -msgstr "Digite o comando usado para rodar a aplicação" - -#: ../src/dock.c:998 -msgid "could not create workspace submenu for Clip menu" -msgstr "não foi possível criar submenu para o menu do Clip" - -#: ../src/dock.c:1056 -msgid "could not create options submenu for Clip menu" -msgstr "não foi possível criar submenu para o menu do Clip" - -#: ../src/dock.c:1058 -msgid "Floating Clip" -msgstr "Clip Flutuante" - -#: ../src/dock.c:1064 -msgid "Collapsed" -msgstr "Encolhido" - -#: ../src/dock.c:1070 -msgid "AutoCollapse" -msgstr "AutoColapsar" - -#: ../src/dock.c:1076 -msgid "AutoAttract Icons" -msgstr "AutoAtrair Ícones" - -#: ../src/dock.c:1082 -msgid "Keep Attracted Icons" -msgstr "Manter Ícones Atraídos" - -#: ../src/dock.c:1106 -msgid "Floating Dock" -msgstr "Dock Flutuante" - -#: ../src/dock.c:1112 -msgid "Clip Options" -msgstr "Opções do Clip" - -#: ../src/dock.c:1117 -msgid "(Un)Select Icon" -msgstr "(De)selecionar Ícone" - -#: ../src/dock.c:1119 -msgid "(Un)Select All Icons" -msgstr "(De)selecionar Todos Ícones" - -#: ../src/dock.c:1122 -msgid "Keep Icon(s)" -msgstr "Manter Ícone(s)" - -#: ../src/dock.c:1124 -msgid "Move Icon(s) To" -msgstr "Mover Ícone(s) Para" - -#: ../src/dock.c:1129 -msgid "Remove Icon(s)" -msgstr "Remover Ícone(s)" - -#: ../src/dock.c:1131 -msgid "Attract Icons" -msgstr "Atrair Ícones" - -#: ../src/dock.c:1134 -msgid "Launch" -msgstr "Lançar" - -#: ../src/dock.c:1136 -msgid "Settings..." -msgstr "Configurar..." - -#: ../src/dock.c:1586 ../src/dock.c:1600 ../src/dock.c:1609 -msgid "bad value in docked icon state info %s" -msgstr "valor inválido %s em arquivo estado do dock" - -#: ../src/dock.c:1617 -msgid "bad value in docked icon position %i,%i" -msgstr "valor de posição de ícone no dock inválido %i,%i" - -#: ../src/dock.c:1846 -msgid "there are too many icons stored in dock. Ignoring what doesn't fit" -msgstr "excesso de ícones no dock. Ignorando o que não cabe" - -#: ../src/dock.c:2075 ../src/dock.c:2191 -msgid "Dock Icon" -msgstr "Docar Ícone" - -#: ../src/dock.c:2987 ../src/dock.c:2991 -msgid "Could not execute command \"%s\"" -msgstr "Comando \"%s\" não pôde ser executado" - -#: ../src/event.c:429 -msgid "stack overflow: too many dead processes" -msgstr "genocídio detectado: excesso de processos mortos" - -#: ../src/framewin.c:515 -msgid "could not render gradient: %s" -msgstr "erro na geração do degradé: %s" - -#: ../src/framewin.c:531 ../src/framewin.c:546 ../src/framewin.c:557 ../src/framewin.c:564 ../src/framewin.c:571 ../src/icon.c:282 ../src/texture.c:503 -msgid "error rendering image:%s" -msgstr "erro na conversão da imagem:%s" - -#: ../src/icon.c:562 -msgid "could not find default icon \"%s\"" -msgstr "ícone default \"%s\" não pôde ser encontrado" - -#: ../src/icon.c:569 -msgid "could not load default icon \"%s\"" -msgstr "ícone default \"%s\" não pôde ser carregado" - -#: ../src/main.c:163 -msgid "Restart failed!!!" -msgstr "Falha na reinicialização!!!" - -#: ../src/main.c:178 -msgid "%s aborted.\n" -msgstr "%s abortado.\n" - -#: ../src/main.c:189 -msgid "usage: %s [-options]\n" -msgstr "utilização: %s [-opções]\n" - -#: ../src/main.c:190 -msgid "options:" -msgstr "opções:" - -#: ../src/main.c:192 -msgid " -nocpp \t\tdisable preprocessing of configuration files" -msgstr " -nocpp \t\tdesativa preprocessamento de arquivos de configuração" - -#: ../src/main.c:194 -msgid " -nodock\t\tdo not open the application Dock" -msgstr " -nodock\t\tdesabilitar o Dock" - -#: ../src/main.c:195 -msgid " -noclip\t\tdo not open the workspace Clip" -msgstr " -noclip\t\tdesabilitar o Clip" +#: ../src/winmenu.c:398 ../src/winspector.c:1146 +msgid "Omnipresent" +msgstr "Onipresente" #. -#. puts(_(" -locale locale locale to use")); +#. * Warning: If you make some change that affects the order of the +#. * entries, you must update the command #defines in the top of +#. * this file. #. -#: ../src/main.c:199 -msgid " -visualid visualid\tvisual id of visual to use" -msgstr " -visualid visualid\tvisual id do visual a usar" +#: ../src/winmenu.c:421 ../src/winmenu.c:556 +msgid "Maximize" +msgstr "Maximizar" -#: ../src/main.c:200 -msgid " -display host:dpy\tdisplay to use" -msgstr " -display host:dpy\tdisplay a ser usado" - -#: ../src/main.c:201 -msgid " -version\t\tprint version and exit" -msgstr " -version\t\tmostra versão e sai" - -#: ../src/main.c:216 -msgid "could not determine home directory" -msgstr "diretório home não pôde ser determinado" - -#: ../src/main.c:226 -msgid "" -"could not find user GNUstep directory.\n" -"Make sure you have installed WindowMaker correctly and run wmaker.inst" -msgstr "" -"diretório GNUstep pessoal não pôde ser encontrado.\n" -"Certifique-se de que WindowMaker está instalado corretamente e execute wmaker.inst" - -#: ../src/main.c:246 -msgid "%s:could not execute initialization script" -msgstr "%s:não foi possível executar script de inicialização" - -#: ../src/main.c:303 ../src/main.c:310 ../src/main.c:317 -msgid "too few arguments for %s" -msgstr "parâmetros insuficientes para %s" - -#: ../src/main.c:321 -msgid "bad value for visualid: \"%s\"" -msgstr "valor inválido de visualID: \"%s\"" - -#: ../src/main.c:366 -msgid "X server does not support locale" -msgstr "servidor X não suporta locale" - -#: ../src/main.c:369 -msgid "cannot set locale modifiers" -msgstr "" - -#: ../src/main.c:383 -msgid "could not open display \"%s\"" -msgstr "não foi possível abrir display \"%s\"" - -#: ../src/menu.c:281 -msgid "wrealloc() failed while trying to add menu item" -msgstr "falta de memória durante adição de item em menu" - -#: ../src/misc.c:69 -msgid "could not define value for %s for cpp" -msgstr "não foi possível definir valor de %s para cpp" - -#: ../src/misc.c:99 -msgid "could not get password entry for UID %i" -msgstr "não foi possível achar usernama para UID %i" - -#: ../src/misc.c:123 -msgid "your machine is misconfigured. HOSTNAME is set to %s" -msgstr "sua máquina está mal configurada. Valor de HOSTNAME = %s" - -#: ../src/misc.c:129 -msgid "your machine is misconfigured. HOST is set to %s" -msgstr "sua máquina está mal configurada. Valor de HOST = %s" - -#: ../src/misc.c:700 -msgid "selection timed-out" -msgstr "time-out tentando ler seleção" - -#: ../src/misc.c:714 -msgid "Program Arguments" -msgstr "Parâmetros do Programa" - -#: ../src/misc.c:733 -msgid "Enter command arguments:" -msgstr "Digite os parâmetros do comando:" - -#: ../src/misc.c:754 -msgid "unable to get dropped data from DND drop" -msgstr "" - -#: ../src/misc.c:762 -msgid "error getting dropped data from DND drop" -msgstr "" - -#: ../src/misc.c:768 -msgid "out of memory while getting data from DND drop" -msgstr "falta de memória recuperando dados de drag&drop DND" - -#: ../src/misc.c:812 ../src/misc.c:931 -msgid "out of memory during expansion of \"%s\"" -msgstr "falta de memória durante expansão de \"%s\"" - -#: ../src/misc.c:866 -msgid "out of memory during expansion of \"%w\"" -msgstr "falta de memória durante expansão de \"%w\"" - -#: ../src/misc.c:885 -msgid "out of memory during expansion of \"%a\"" -msgstr "memória insuficiente na expansão de \"%a\"" - -#: ../src/misc.c:907 -msgid "out of memory during expansion of \"%d\"" -msgstr "falta de memória durante expansão de \"%d\"" - -#: ../src/misc.c:919 -msgid "selection not available" -msgstr "seleção inexistente" - -#: ../src/misc.c:997 ../src/misc.c:1003 -msgid "bad window name value in %s state info" -msgstr "" - -#: ../src/pixmap.c:235 -msgid "could not load mask bitmap file \"%s\". Won't use mask" -msgstr "arquivo de bitmap \"%s\" não pôde ser aberto." - -#: ../src/resources.c:71 -msgid "The following character sets are missing:" -msgstr "" - -#: ../src/resources.c:75 -msgid "The string \"%s\" will be used in place" -msgstr "" - -#: ../src/resources.c:77 -msgid "of any characters from those sets." -msgstr "" - -#: ../src/resources.c:80 -msgid "could not create font set %s. Trying fixed" -msgstr "" - -#: ../src/resources.c:97 -msgid "could not load font %s. Trying fixed" -msgstr "fonte %s não pôde ser carregado. Tentando fixed" - -#: ../src/resources.c:135 -msgid "could not parse color \"%s\"" -msgstr "\"%s\" não pode ser reconhecido" - -#: ../src/resources.c:139 -msgid "could not allocate color \"%s\"" -msgstr "cor \"%s\" não pôde ser alocada" - -#: ../src/rootmenu.c:160 -msgid "Program \"%s\" not found or cannot be executed." -msgstr "Programa \"%s\" não encontrado ou não pode ser executado." - -#: ../src/rootmenu.c:204 -msgid "Exit window manager?" -msgstr "Sair do gerenciador de janelas?" - -#: ../src/rootmenu.c:224 -msgid "Close X session" -msgstr "Fechar sessão do X" - -#: ../src/rootmenu.c:225 -msgid "" -"Close Window System session?\n" -"(all applications will be closed)" -msgstr "" -"Fechar sessão do sistema de janelas?\n" -"(todos os aplicativos serão fechados)" - -#: ../src/rootmenu.c:227 -msgid "Exiting...\n" -msgstr "Saindo...\n" - -#: ../src/rootmenu.c:407 -msgid "%s:invalid key modifier \"%s\"" -msgstr "%s:modificador de tecla de atalho inválido \"%s\"" - -#: ../src/rootmenu.c:421 -msgid "%s:invalid kbd shortcut specification \"%s\"" -msgstr "%s:tecla de atalho inválido \"%s\"" - -#: ../src/rootmenu.c:429 -msgid "%s:invalid key in shortcut \"%s\"" -msgstr "%s:tecla inválida no atalho \"%s\"" - -#: ../src/rootmenu.c:482 -msgid "%s: unmatched '\"' in menu file" -msgstr "%s: '\"' não fechado no arquivo de menu" - -#: ../src/rootmenu.c:531 -msgid "%s: missing command" -msgstr "%s: falta o comando" - -#: ../src/rootmenu.c:564 -msgid "invalid OPEN_MENU specification: %s" -msgstr "especificação de OPEN_MENU inválido: %s" - -#: ../src/rootmenu.c:629 -msgid "%s:could not stat menu" -msgstr "%s:menu não pôde ser acessado" - -#: ../src/rootmenu.c:637 -msgid "%s:could not stat menu :%s" -msgstr "%s:menu não pôde ser acessado: %s" - -#: ../src/rootmenu.c:655 -msgid "too many parameters in OPEN_MENU: %s" -msgstr "excesso de parâmetros em OPEN_MENU: %s" - -#: ../src/rootmenu.c:714 ../src/rootmenu.c:737 -msgid "%s:missing parameter for menu command \"%s\"" -msgstr "%s:falta parâmetro no comando de menu \"%s\"" - -#: ../src/rootmenu.c:794 -msgid "%s:unknown command \"%s\" in menu config." -msgstr "%s:comando inválido \"%s\" na configuração do menu." - -#: ../src/rootmenu.c:802 -msgid "%s:can't add shortcut for entry \"%s\"" -msgstr "%s:\"%s\" não pode ter tecla de atalho" - -#: ../src/rootmenu.c:934 -msgid "%s:maximal line size exceeded in menu config: %s" -msgstr "%s:linha muito comprida no arquivo de menu: %s" - -#: ../src/rootmenu.c:956 ../src/rootmenu.c:1048 ../src/rootmenu.c:1146 -msgid "%s:missing command in menu config: %s" -msgstr "%s:falta o comando no menu \"%s\"" - -#: ../src/rootmenu.c:986 -msgid "%s:syntax error in menu file:END declaration missing" -msgstr "%s:erro de sintaxe no menu:falta um END" - -#: ../src/rootmenu.c:1015 ../src/rootmenu.c:1111 -msgid "could not make arguments for menu file preprocessor" -msgstr "não foi possível criar parâmetros para o preprocessador para menu" - -#: ../src/rootmenu.c:1021 ../src/rootmenu.c:1118 -msgid "%s:could not open/preprocess menu file" -msgstr "%s:não foi possível abrir/preprocessar arquivo de menu" - -#: ../src/rootmenu.c:1033 ../src/rootmenu.c:1131 -msgid "%s:could not open menu file" -msgstr "%s:arquivo de menu não pôde ser aberto" - -#: ../src/rootmenu.c:1060 -msgid "%s:invalid menu file" -msgstr "%s:arquivo de menu inválido" - -#: ../src/rootmenu.c:1158 -msgid "%s:no title given for the root menu" -msgstr "%s:falta o título do menu de aplicações" - -#: ../src/rootmenu.c:1212 ../src/rootmenu.c:1275 ../src/rootmenu.c:1319 -msgid "out of memory while constructing directory menu %s" -msgstr "faltou memória durante construção do menu de diretório %s" - -#: ../src/rootmenu.c:1222 -msgid "%s:could not stat file \"%s\" in menu directory" -msgstr "$s:arquivo \"%s\" não pôde ser acessado no menu de diretório" - -#: ../src/rootmenu.c:1368 -msgid "Commands" -msgstr "Comandos" - -#: ../src/rootmenu.c:1370 -msgid "Exit..." -msgstr "Sair..." - -#: ../src/rootmenu.c:1404 -msgid "%s:could not find menu file \"%s\"" -msgstr "%s:arquivo de menu \"%s\" não encontrado" - -#: ../src/rootmenu.c:1410 -msgid "%s:could not stat menu \"%s\"" -msgstr "%s:arquivo de menu \"%s\" não pôde ser acessado" - -#: ../src/rootmenu.c:1434 ../src/rootmenu.c:1481 -msgid "%s:format error in root menu configuration \"%s\"" -msgstr "%s:erro no formato do arquivo de configuração de menu \"%s\"" - -#: ../src/screen.c:110 -msgid "it seems that there already is a window manager running" -msgstr "aparentemente já há um gerenciador de janelas sendo executado" - -#: ../src/screen.c:346 -msgid "could not load logo image for panels" -msgstr "arquivo de logo para janelas não pôde ser aberto" - -#: ../src/screen.c:349 -msgid "error making logo image for panel:%s" -msgstr "erro na geração do logo para janelas:%s" - -#: ../src/screen.c:510 -msgid "could not initialize graphics library context: %s" -msgstr "erro inicializando contexto da biblioteca gráfica: %s" - -#: ../src/session.c:113 ../src/wdefaults.c:555 ../src/winspector.c:323 -msgid "can't convert \"%s\" to boolean" -msgstr "\"%s\" não é um valor booleano" - -#: ../src/stacking.c:88 -msgid "could not get window list!!" -msgstr "" - -#: ../src/startup.c:149 -msgid "internal X error: %s\n" -msgstr "erro interno de X: %s\n" - -#: ../src/startup.c:189 -msgid "got signal %i (%s) - restarting\n" -msgstr "sinal %i (%s) recebido - reiniciando\n" - -#: ../src/startup.c:191 -msgid "got signal %i - restarting\n" -msgstr "sinal %i recebido - reiniciando\n" - -#: ../src/startup.c:198 -msgid "%s: Received signal SIGTERM. Exiting..." -msgstr "%s: Sinal SIGTERM recebido. Saindo..." - -#: ../src/startup.c:207 -msgid "got signal %i (%s)\n" -msgstr "signal %i recebido (%s)\n" - -#: ../src/startup.c:209 -msgid "got signal %i\n" -msgstr "signal %i recebido\n" - -#. restart another window manager so that the X session doesn't -#. * go to space -#: ../src/startup.c:218 -msgid "trying to start alternative window manager..." -msgstr "tentando iniciar gerenciador de janelas alternativo..." - -#: ../src/switchmenu.c:124 -msgid "Windows" -msgstr "Janelas" - -#: ../src/texture.c:260 -msgid "image file \"%s\" used as texture could not be found." -msgstr "arquivo de imagem \"%s\" usado em textura não encontrado." - -#: ../src/texture.c:266 -msgid "could not load texture pixmap \"%s\":%s" -msgstr "arquivo de imagem \"%s\" não pôde ser aberto" - -#: ../src/texture.c:362 ../src/texture.c:499 -msgid "could not render texture: %s" -msgstr "erro na geração de textura: %s" - -#: ../src/wdefaults.c:387 -msgid "could not find icon file \"%s\"" -msgstr "ícone de arquivo \"%s\" não encontrado" - -#: ../src/winmenu.c:179 -msgid "could not create workspace submenu for window menu" -msgstr "não foi possível criar lista de áreas de trabalho para o menu de janela" - -#: ../src/winmenu.c:201 -msgid "(Un)Maximize" -msgstr "(De)Maximizar" - -#: ../src/winmenu.c:202 +#: ../src/winmenu.c:429 ../src/winmenu.c:542 msgid "Miniaturize" msgstr "Miniaturizar" -#: ../src/winmenu.c:211 -msgid "(Un)Shade" -msgstr "(De)Shadear" +#: ../src/winmenu.c:438 ../src/winmenu.c:573 +msgid "Shade" +msgstr "Sombrear" -#: ../src/winmenu.c:219 -msgid "Hide" -msgstr "" +#: ../src/winmenu.c:454 +msgid "Resize/Move" +msgstr "Redimensionar/Mover" -#: ../src/winmenu.c:227 -msgid "Hide Others" -msgstr "Hide Outros" - -#: ../src/winmenu.c:229 +#: ../src/winmenu.c:462 msgid "Select" msgstr "Selecionar" -#: ../src/winmenu.c:231 +#: ../src/winmenu.c:470 msgid "Move To" msgstr "Mover Para" -#: ../src/winmenu.c:236 +#: ../src/winmenu.c:475 msgid "Attributes..." msgstr "Atributos..." -#: ../src/winmenu.c:238 -msgid "Close" -msgstr "Fechar" +#: ../src/winmenu.c:477 +msgid "Options" +msgstr "Opções" -#: ../src/winspector.c:270 -msgid "Could not find specified icon file" -msgstr "Ícone especificado não pôde ser encontrado" +#: ../src/winmenu.c:537 +msgid "Deminiaturize" +msgstr "Restaurar" -#: ../src/winspector.c:928 -msgid "not enough memory to open window inspector panel" -msgstr "falta de memória criando editor de atributos de janela" +#: ../src/winmenu.c:551 +msgid "Unmaximize" +msgstr "Desmaximizar" -#: ../src/winspector.c:955 +#: ../src/winmenu.c:568 +msgid "Unshade" +msgstr "(Des)sombrear" + +#: ../src/winspector.c:281 +#, c-format +msgid "Could not find icon \"%s\" specified for this window" +msgstr "Ícone especificado não pôde ser encontrado: \"%s\"" + +#: ../src/winspector.c:297 +#, c-format +msgid "Could not open specified icon \"%s\":%s" +msgstr "O ícone especificado não pôde ser aberto: \"%s\"" + +#: ../src/winspector.c:1021 msgid "Save" msgstr "Salvar" -#: ../src/winspector.c:961 +#: ../src/winspector.c:1029 msgid "Apply" msgstr "Aplicar" -#: ../src/winspector.c:967 -msgid "Revert" -msgstr "Reverter" +#: ../src/winspector.c:1035 +msgid "Reload" +msgstr "Recarregar" -#: ../src/winspector.c:976 ../src/winspector.c:984 +#: ../src/winspector.c:1044 ../src/winspector.c:1054 msgid "Window Specification" msgstr "Especificação de Janelas" -#: ../src/winspector.c:977 +#: ../src/winspector.c:1045 msgid "Window Attributes" msgstr "Atributos de Janela" -#: ../src/winspector.c:978 +#: ../src/winspector.c:1046 msgid "Advanced Options" msgstr "Opções Avançadas" -#: ../src/winspector.c:979 +#: ../src/winspector.c:1047 msgid "Icon and Initial Workspace" msgstr "Ícone e Área de Trabalho Inicial" -#: ../src/winspector.c:980 +#: ../src/winspector.c:1048 msgid "Application Specific" msgstr "Geral da Aplicação" -#: ../src/winspector.c:1019 +#: ../src/winspector.c:1062 msgid "Defaults for all windows" -msgstr "Default para todas as janelas" +msgstr "Padrão para todas as janelas" -#: ../src/winspector.c:1027 +#: ../src/winspector.c:1105 msgid "" "The configuration will apply to all\n" "windows that have their WM_CLASS property set to the above selected\n" "name, when saved." msgstr "" "A configuração será usada para todas as janelas\n" -"que tenham o valor da propriedade WM_CLASS igual ao nome especificado acima,\n" +"que tenham o valor da propriedade WM_CLASS igual ao nome especificado " +"acima,\n" "quando salvo." -#: ../src/winspector.c:1034 +#: ../src/winspector.c:1112 msgid "Attributes" msgstr "Atributos" -#: ../src/winspector.c:1044 -msgid "Disable titlebar" +#: ../src/winspector.c:1122 +msgid "Disable Titlebar" msgstr "Remover barra de título" -#: ../src/winspector.c:1048 -msgid "Disable resizebar" -msgstr "Remover barra inferior" +#: ../src/winspector.c:1126 +msgid "Disable Resizebar" +msgstr "Remover barra de tamanho" -#: ../src/winspector.c:1052 -msgid "Disable close button" +#: ../src/winspector.c:1130 +msgid "Disable Close Button" msgstr "Remover botão de fechar" -#: ../src/winspector.c:1056 -msgid "Disable miniaturize button" +#: ../src/winspector.c:1134 +msgid "Disable Miniaturize Button" msgstr "Remover botão de miniaturização" -#: ../src/winspector.c:1060 -msgid "Keep on top" +#: ../src/winspector.c:1138 +msgid "Keep on Top / Floating" msgstr "Manter sobre outros" -#: ../src/winspector.c:1064 -msgid "Omnipresent" -msgstr "Onipresente" +#: ../src/winspector.c:1142 +msgid "Keep at Bottom / Sunken" +msgstr "Manter abaixo de outros" -#: ../src/winspector.c:1068 +#: ../src/winspector.c:1150 msgid "Start Miniaturized" -msgstr "Iniciar miniaturizado" +msgstr "Iniciar Miniaturizado" -#: ../src/winspector.c:1072 -msgid "Skip window list" +#: ../src/winspector.c:1154 +msgid "Start Maximized" +msgstr "Iniciar Maximizado" + +#: ../src/winspector.c:1158 +msgid "Skip Window List" msgstr "Remover da lista de janelas" -#: ../src/winspector.c:1086 +#: ../src/winspector.c:1172 msgid "Advanced" msgstr "Avançado" -#: ../src/winspector.c:1096 +#: ../src/winspector.c:1182 msgid "Ignore HideOthers" -msgstr "Ignorar HideOthers" +msgstr "Ignorar Esconder Outros" -#: ../src/winspector.c:1100 -msgid "Don't bind keyboard shortcuts" +#: ../src/winspector.c:1186 +msgid "Don't Bind Keyboard Shortcuts" msgstr "Desabilitar teclas de atalho" -#: ../src/winspector.c:1104 -msgid "Don't bind mouse clicks" +#: ../src/winspector.c:1190 +msgid "Don't Bind Mouse Clicks" msgstr "Desabilitar operações de mouse" -#: ../src/winspector.c:1108 -msgid "Keep inside screen" +#: ../src/winspector.c:1194 +msgid "Keep Inside Screen" msgstr "Manter dentro da tela" -#: ../src/winspector.c:1112 -msgid "No application icon" -msgstr "Desabilitar ícone de aplicação" - -#: ../src/winspector.c:1116 -msgid "Don't let it take focus" +#: ../src/winspector.c:1198 +msgid "Don't Let It Take Focus" msgstr "Desabilitar foco de teclado" -#: ../src/winspector.c:1120 +#: ../src/winspector.c:1202 msgid "Don't Save Session" msgstr "Não incluir na sessão salva" -#: ../src/winspector.c:1135 -msgid "Enable the \"Don't bind...\" options to allow the application to receive all mouse or keyboard events." -msgstr "Ligue as opções desabilitar teclas e/ou mouse para permitir que a aplicação receba todos os eventos de teclado e/ou mouse" +#: ../src/winspector.c:1206 +msgid "Emulate Application Icon" +msgstr "Emular ícone de aplicação" -#: ../src/winspector.c:1142 +#: ../src/winspector.c:1210 +msgid "Full Screen Maximization" +msgstr "Maximização em Tela Cheia" + +#: ../src/winspector.c:1225 +msgid "" +"Enable the \"Don't bind...\" options to allow the application to receive all " +"mouse or keyboard events." +msgstr "" +"Ligue as opções desabilitar teclas e/ou mouse para permitir que a aplicação " +"receba todos os eventos de teclado e/ou mouse" + +#: ../src/winspector.c:1232 msgid "Miniwindow Image" msgstr "Imagem do Miniwindow" -#: ../src/winspector.c:1160 +#: ../src/winspector.c:1251 msgid "Update" msgstr "Atualizar" -#: ../src/winspector.c:1165 -msgid "Icon file name:" +#: ../src/winspector.c:1266 +msgid "Icon File Name:" msgstr "Arquivo de ícone:" -#: ../src/winspector.c:1175 +#: ../src/winspector.c:1278 msgid "Ignore client supplied icon" msgstr "Ignorar ícone fornecido pela aplicação" -#: ../src/winspector.c:1181 +#: ../src/winspector.c:1285 msgid "Initial Workspace" msgstr "Área de Trabalho Inicial" -#: ../src/winspector.c:1188 +#: ../src/winspector.c:1290 msgid "Nowhere in particular" msgstr "Nenhum lugar em particular" -#: ../src/winspector.c:1219 +#: ../src/winspector.c:1308 msgid "Application Wide" msgstr "Geral da Aplicação" -#: ../src/winspector.c:1229 +#: ../src/winspector.c:1318 msgid "Start Hidden" msgstr "Iniciar como Hidden (escondido)" -#: ../src/workspace.c:89 ../src/workspace.c:90 ../src/workspace.c:418 +#: ../src/winspector.c:1322 +msgid "No Application Icon" +msgstr "Desabilitar ícone de aplicação" + +#: ../src/workspace.c:102 ../src/workspace.c:103 ../src/workspace.c:480 +#, c-format msgid "Workspace %i" msgstr "Área de Trabalho %i" -#: ../src/workspace.c:442 +#: ../src/workspace.c:537 msgid "Workspaces" msgstr "Áreas de Trabalho" -#: ../src/workspace.c:444 +#: ../src/workspace.c:539 msgid "could not create Workspace menu" msgstr "não foi possível criar menu de Workspace" -#: ../src/workspace.c:451 +#: ../src/workspace.c:546 msgid "New" msgstr "Novo" -#: ../src/workspace.c:452 +#: ../src/workspace.c:547 msgid "Destroy Last" msgstr "Destruir Último" -#: ../src/xutil.c:220 +#: ../src/xutil.c:228 msgid "invalid data in selection" -msgstr "" +msgstr "dados inválidos na seleção" diff --git a/src/Makefile.am b/src/Makefile.am index 19f7f270..d420f70f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -75,6 +75,8 @@ wmaker_SOURCES = \ switchmenu.c \ texture.c \ texture.h \ + usermenu.c \ + usermenu.h \ xde.h \ xde.c \ xmodifier.h \ diff --git a/src/Makefile.in b/src/Makefile.in index 56fb879a..f69afe8a 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -96,7 +96,7 @@ bin_PROGRAMS = wmaker EXTRA_DIST = wmnotify.c wmnotdef.h wmnotify.h -wmaker_SOURCES = GNUstep.h WindowMaker.h actions.c actions.h appicon.c appicon.h application.c application.h appmenu.c appmenu.h balloon.c balloon.h client.c client.h colormap.c def_pixmaps.h defaults.c defaults.h dialog.c dialog.h dock.c dockedapp.c dock.h event.c framewin.c framewin.h gnome.c gnome.h funcs.h icon.c icon.h keybind.h kwm.h kwm.c list.c list.h main.c menu.c menu.h misc.c motif.c motif.h moveres.c openlook.c openlook.h pixmap.c pixmap.h placement.c properties.c properties.h proplist.c resources.c resources.h rootmenu.c screen.c screen.h session.h session.c shutdown.c stacking.c stacking.h startup.c superfluous.c superfluous.h switchmenu.c texture.c texture.h xde.h xde.c xmodifier.h xmodifier.c xutil.c xutil.h wconfig.h wcore.c wcore.h wdefaults.c wdefaults.h window.c window.h winmenu.c winspector.h winspector.c workspace.c workspace.h wmsound.c wmsound.h text.c text.h +wmaker_SOURCES = GNUstep.h WindowMaker.h actions.c actions.h appicon.c appicon.h application.c application.h appmenu.c appmenu.h balloon.c balloon.h client.c client.h colormap.c def_pixmaps.h defaults.c defaults.h dialog.c dialog.h dock.c dockedapp.c dock.h event.c framewin.c framewin.h gnome.c gnome.h funcs.h icon.c icon.h keybind.h kwm.h kwm.c list.c list.h main.c menu.c menu.h misc.c motif.c motif.h moveres.c openlook.c openlook.h pixmap.c pixmap.h placement.c properties.c properties.h proplist.c resources.c resources.h rootmenu.c screen.c screen.h session.h session.c shutdown.c stacking.c stacking.h startup.c superfluous.c superfluous.h switchmenu.c texture.c texture.h usermenu.c usermenu.h xde.h xde.c xmodifier.h xmodifier.c xutil.c xutil.h wconfig.h wcore.c wcore.h wdefaults.c wdefaults.h window.c window.h winmenu.c winspector.h winspector.c workspace.c workspace.h wmsound.c wmsound.h text.c text.h CPPFLAGS = @CPPFLAGS@ @DFLAGS@ -DLOCALEDIR=\"$(NLSDIR)\" @@ -123,9 +123,9 @@ client.o colormap.o defaults.o dialog.o dock.o dockedapp.o event.o \ framewin.o gnome.o icon.o kwm.o list.o main.o menu.o misc.o motif.o \ moveres.o openlook.o pixmap.o placement.o properties.o proplist.o \ resources.o rootmenu.o screen.o session.o shutdown.o stacking.o \ -startup.o superfluous.o switchmenu.o texture.o xde.o xmodifier.o \ -xutil.o wcore.o wdefaults.o window.o winmenu.o winspector.o workspace.o \ -wmsound.o text.o +startup.o superfluous.o switchmenu.o texture.o usermenu.o xde.o \ +xmodifier.o xutil.o wcore.o wdefaults.o window.o winmenu.o winspector.o \ +workspace.o wmsound.o text.o wmaker_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.a \ $(top_builddir)/wrlib/libwraster.la wmaker_LDFLAGS = diff --git a/src/actions.c b/src/actions.c index f10d409e..8dbf5ef7 100644 --- a/src/actions.c +++ b/src/actions.c @@ -175,10 +175,7 @@ wSetFocusTo(WScreen *scr, WWindow *wwin) if (napp) napp->last_workspace = wwin->screen_ptr->current_workspace; - if (WFLAGP(wwin, no_focusable)) - return; - - if (wwin->flags.mapped /*&& !WFLAGP(wwin, no_focusable)*/) { + if (wwin->flags.mapped && !WFLAGP(wwin, no_focusable)) { /* install colormap if colormap mode is lock mode */ if (wPreferences.colormap_mode==WKF_CLICK) wColormapInstallForWindow(scr, wwin); @@ -205,6 +202,8 @@ wSetFocusTo(WScreen *scr, WWindow *wwin) } else { XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, timestamp); } + if (WFLAGP(wwin, no_focusable)) + return; /* if this is not the focused window focus it */ if (focused!=wwin) { @@ -231,6 +230,10 @@ wSetFocusTo(WScreen *scr, WWindow *wwin) wWindowFocus(wwin, focused); if (napp && !wasfocused) { +#ifdef USER_MENU + wUserMenuRefreshInstances(napp->menu, wwin); +#endif /* USER_MENU */ + wAppMenuMap(napp->menu, wwin); #ifdef NEWAPPICON wApplicationActivate(napp); diff --git a/src/application.c b/src/application.c index 16f304ad..83813dcf 100644 --- a/src/application.c +++ b/src/application.c @@ -29,6 +29,9 @@ #include "WindowMaker.h" #include "menu.h" #include "window.h" +#ifdef USER_MENU +#include "usermenu.h" +#endif /* USER_MENU */ #include "icon.h" #include "appicon.h" #include "application.h" @@ -291,6 +294,9 @@ wApplicationCreate(WScreen *scr, Window main_window) leader->main_window = main_window; } wapp->menu = wAppMenuGet(scr, main_window); +#ifdef USER_MENU + if (!wapp->menu) wapp->menu = wUserMenuGet(scr, wapp->main_window_desc); +#endif /* USER_MENU */ /* @@ -353,9 +359,6 @@ wApplicationCreate(WScreen *scr, Window main_window) if (wapp->app_icon) { wapp->app_icon->main_window = main_window; -#ifdef WMSOUND - wSoundServerGrab(wapp->app_icon->wm_class, main_window); -#endif } #ifndef REDUCE_APPICONS diff --git a/src/dock.c b/src/dock.c index 829ade18..8805dfde 100644 --- a/src/dock.c +++ b/src/dock.c @@ -55,10 +55,6 @@ #include "list.h" -#ifdef WMSOUND -#include "wmsound.h" -#endif - #include diff --git a/src/event.c b/src/event.c index be3813c3..2d26fb79 100644 --- a/src/event.c +++ b/src/event.c @@ -1267,36 +1267,6 @@ windowUnderPointer(WScreen *scr) static WWindow* nextToFocusAfter(WWindow *wwin) -{ - WWindow *tmp = wwin->next; - - while (tmp) { - if (wWindowCanReceiveFocus(tmp) && !WFLAGP(tmp, skip_window_list)) { - - return tmp; - } - tmp = tmp->next; - } - - tmp = wwin; - /* start over from the beginning of the list */ - while (tmp->prev) - tmp = tmp->prev; - - while (tmp && tmp != wwin) { - if (wWindowCanReceiveFocus(tmp) && !WFLAGP(tmp, skip_window_list)) { - - return tmp; - } - tmp = tmp->next; - } - - return wwin; -} - - -static WWindow* -nextToFocusBefore(WWindow *wwin) { WWindow *tmp = wwin->prev; @@ -1308,8 +1278,8 @@ nextToFocusBefore(WWindow *wwin) tmp = tmp->prev; } - /* start over from the beginning of the list */ tmp = wwin; + /* start over from the beginning of the list */ while (tmp->next) tmp = tmp->next; @@ -1324,12 +1294,43 @@ nextToFocusBefore(WWindow *wwin) return wwin; } + +static WWindow* +nextToFocusBefore(WWindow *wwin) +{ + WWindow *tmp = wwin->next; + + while (tmp) { + if (wWindowCanReceiveFocus(tmp) && !WFLAGP(tmp, skip_window_list)) { + + return tmp; + } + tmp = tmp->next; + } + + /* start over from the beginning of the list */ + tmp = wwin; + while (tmp->prev) + tmp = tmp->prev; + + while (tmp && tmp != wwin) { + if (wWindowCanReceiveFocus(tmp) && !WFLAGP(tmp, skip_window_list)) { + + return tmp; + } + tmp = tmp->next; + } + + return wwin; +} + static void doWindozeCycle(WWindow *wwin, XEvent *event, Bool next) { WScreen *scr = wScreenForRootWindow(event->xkey.root); Bool done = False; - WWindow *newFocused; + Bool openedSwitchMenu = False; + WWindow *newFocused; WWindow *oldFocused; int modifiers; XModifierKeymap *keymap; @@ -1354,9 +1355,16 @@ doWindozeCycle(WWindow *wwin, XEvent *event, Bool next) wWindowFocus(newFocused, scr->focused_window); oldFocused = newFocused; + if (wPreferences.circ_raise) + wRaiseFrame(newFocused->frame->core); - OpenSwitchMenu(scr, scr->scr_width/2, scr->scr_height/2, False); - + if (wPreferences.popup_switchmenu && + (!scr->switch_menu || !scr->switch_menu->flags.mapped)) + { + OpenSwitchMenu(scr, scr->scr_width/2, scr->scr_height/2, False); + openedSwitchMenu = True; + } + while (!done) { XEvent ev; @@ -1378,6 +1386,8 @@ puts("EV"); newFocused = nextToFocusAfter(newFocused); wWindowFocus(newFocused, oldFocused); oldFocused = newFocused; + if (wPreferences.circ_raise) + wRaiseFrame(newFocused->frame->core); UpdateSwitchMenu(scr, newFocused, ACTION_CHANGE_STATE); } else if (ev.type == KeyPress @@ -1388,6 +1398,8 @@ puts("EV"); newFocused = nextToFocusBefore(newFocused); wWindowFocus(newFocused, oldFocused); oldFocused = newFocused; + if (wPreferences.circ_raise) + wRaiseFrame(newFocused->frame->core); UpdateSwitchMenu(scr, newFocused, ACTION_CHANGE_STATE); } if (ev.type == KeyRelease) { @@ -1409,7 +1421,8 @@ puts("OUT"); XUngrabKeyboard(dpy, CurrentTime); wSetFocusTo(scr, newFocused); scr->flags.doing_alt_tab = 0; - OpenSwitchMenu(scr, scr->scr_width/2, scr->scr_height/2, False); + if (openedSwitchMenu) + OpenSwitchMenu(scr, scr->scr_width/2, scr->scr_height/2, False); } diff --git a/src/main.c b/src/main.c index 77724a7b..36f43c8d 100644 --- a/src/main.c +++ b/src/main.c @@ -52,7 +52,6 @@ #include - /****** Global Variables ******/ /* general info */ @@ -299,7 +298,7 @@ execInitScript() file = wfindfile(DEF_CONFIG_PATHS, DEF_INIT_SCRIPT); if (file) { if (fork()==0) { - execl("/bin/sh", "/bin/sh", "-c", file, NULL); + execl("/bin/sh", "/bin/sh", "-c",file, NULL); wsyserror(_("%s:could not execute initialization script"), file); exit(1); } @@ -511,10 +510,6 @@ main(int argc, char **argv) wXModifierInitialize(); -#ifdef SOUNDS - wSoundInitialize(); -#endif - #ifdef XSMP_ENABLED wSessionConnectManager(argv, argc); #endif diff --git a/src/menu.c b/src/menu.c index b7abf244..94736dc1 100644 --- a/src/menu.c +++ b/src/menu.c @@ -266,7 +266,6 @@ insertEntry(WMenu *menu, WMenuEntry *entry, int index) } - WMenuEntry* wMenuInsertCallback(WMenu *menu, int index, char *text, void (*callback)(WMenu *menu, WMenuEntry *entry), @@ -585,6 +584,12 @@ wMenuDestroy(WMenu *menu, int recurse) if (menu->entries[i]->rtext) free(menu->entries[i]->rtext); +#ifdef USER_MENU + + if (menu->entries[i]->instances){ + PLRelease(menu->entries[i]->instances); + } +#endif /* USER_MENU */ if (menu->entries[i]->free_cdata && menu->entries[i]->clientdata) { (*menu->entries[i]->free_cdata)(menu->entries[i]->clientdata); diff --git a/src/menu.h b/src/menu.h index b8b864b4..415ea78a 100644 --- a/src/menu.h +++ b/src/menu.h @@ -38,6 +38,9 @@ typedef struct WMenuEntry { void (*free_cdata)(void *data); /* proc to be used to free clientdata */ void *clientdata; /* data to pass to callback */ int cascade; /* cascade menu index */ +#ifdef USER_MENU + proplist_t instances; /* allowed instances */ +#endif /* USER_MENU */ struct { unsigned int enabled:1; /* entry is selectable */ unsigned int indicator:1; /* left indicator */ diff --git a/src/startup.c b/src/startup.c index ccee2219..e782e864 100644 --- a/src/startup.c +++ b/src/startup.c @@ -58,10 +58,6 @@ #include "xutil.h" -#ifdef WMSOUND -#include "wmsound.h" -#endif - #ifdef KWM_HINTS #include "kwm.h" #endif @@ -766,10 +762,6 @@ StartUp(Bool defaultScreenOnly) XSetErrorHandler((XErrorHandler)catchXError); /* Sound init */ -#ifdef WMSOUND - wSoundInit(dpy); -#endif - #ifdef SHAPE /* ignore j */ wShapeSupported = XShapeQueryExtension(dpy, &wShapeEventBase, &j); diff --git a/src/usermenu.c b/src/usermenu.c new file mode 100644 index 00000000..d8deeff0 --- /dev/null +++ b/src/usermenu.c @@ -0,0 +1,389 @@ +#ifdef USER_MENU +/* User defined menu is good, but beer's always better + * if someone wanna start hacking something, He heard... + * TODO + * - enhance commands. (eg, exit, hide, list all app's member + * window and etc) + * - cache menu... dunno.. if people really use this feature :P + * - Violins, senseless violins! + * that's all, right now :P + * - external! WINGs menu editor. + * TODONOT + * - allow applications to share their menu. ] think it + * looks wierd since there still are more than 1 appicon. + * + * Syntax... + * ( + * "Program Name", + * ("Command 1", SHORTCUT, 1), + * ("Command 2", SHORTCUT, 2, ("Allowed_instant_1", "Allowed_instant_2")), + * ("Command 3", SHORTCUT, (3,4,5), ("Allowed_instant_1")), + * ( + * "Submenu", + * ("Kill Command", KILL), + * ("Hide Command", HIDE), + * ("Hide Others Command", HIDE_OTHERS), + * ("Members", MEMBERS), + * ("Exit Command", EXIT) + * ) + * ) + * + * Tips: + * - If you don't want short cut keys to be listed + * in the right side of entries, you can just put them + * in array instead of using the string directly. + * + */ + +#include "wconfig.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "WindowMaker.h" +#include "wcore.h" +#include "menu.h" +#include "actions.h" +#include "funcs.h" +#include "keybind.h" + +#include "framewin.h" + + +extern proplist_t ReadProplistFromFile(char *file); +/*** var ***/ +extern WPreferences wPreferences; + +typedef struct { + WScreen *screen; + WShortKey *key; + int key_no; +} WUserMenuData; + + +static void +notifyClient(WMenu *menu, WMenuEntry *entry){ + XEvent event; + WUserMenuData *data = entry->clientdata; + WScreen *scr = data->screen; + Window window; + int i; + + window=scr->focused_window->client_win; + + for(i=0;ikey_no;i++){ + event.xkey.type = KeyPress; + event.xkey.display = dpy; + event.xkey.window = window; + event.xkey.subwindow = 0x0; + event.xkey.x = 0x0; + event.xkey.y = 0x0; + event.xkey.x_root = 0x0; + event.xkey.y_root = 0x0; + event.xkey.keycode = data->key[i].keycode; + event.xkey.state = data->key[i].modifier; + event.xkey.same_screen = YES; + XSendEvent(dpy, window, False, NoEventMask, &event); + XFlush(dpy); + /* should i release key too? */ + } +} + +static void +removeUserMenudata(void *menudata){ + WUserMenuData *data = menudata; + free(data->key); + free(data); +} + +static WUserMenuData* +convertShortcut(WScreen *scr, proplist_t shortcut){ + WUserMenuData *data; + KeySym ksym; + char *k; + char buf[128], *b; + + data = malloc(sizeof(WUserMenuData)); + data->key = malloc(sizeof(WUserMenuData)); + data->key[0].modifier = 0; + + strcpy(buf, PLGetString(shortcut)); + b = (char*)buf; + + /* get modifiers */ + while ((k = strchr(b, '+'))!=NULL) { + int mod; + + *k = 0; + mod = wXModifierFromKey(b); + if (mod<0) { + free(data); + return NULL; + } + data->key[0].modifier |= mod; + + b = k+1; + } + + /* get key */ + ksym = XStringToKeysym(b); + + if (ksym==NoSymbol) { + free(data); + return NULL; + } + + data->key[0].keycode = XKeysymToKeycode(dpy, ksym); + if (data->key[0].keycode==0) { + free(data); + return NULL; + } + data->screen = scr; + data->key_no = 1; + + return data; +} + +static WUserMenuData* +convertShortcuts(WScreen *scr, proplist_t shortcut){ + WUserMenuData *data; + KeySym ksym; + char *k; + char *buffer; + char buf[128], *b; + int keycount,i,j,mod; + + if (PLIsString(shortcut)){ + keycount = 1; + } + else if (PLIsArray(shortcut)){ + keycount = PLGetNumberOfElements(shortcut); + } + else return NULL; + /*for (i=0;ikey = malloc(sizeof(WShortKey)*keycount); + + for (i=0,j=0;ikey[j].modifier = 0; + if (PLIsArray(shortcut)) { + strcpy(buf, PLGetString(PLGetArrayElement(shortcut, i))); + } + else { + strcpy(buf, PLGetString(shortcut)); + } + b = (char*)buf; + + while ((k = strchr(b, '+'))!=NULL) { + *k = 0; + mod = wXModifierFromKey(b); + if (mod<0) { + break; + } + data->key[j].modifier |= mod; + b = k+1; + } + if (mod<0) { + continue; + } + + ksym = XStringToKeysym(b); + if (ksym==NoSymbol) { + continue; + } + + data->key[j].keycode = XKeysymToKeycode(dpy, ksym); + if (data->key[j].keycode) { + j++; + } + } + +keyover: + + /* get key */ + if (!j) { + free(data->key); + free(data); + } + data->key_no = j; + data->screen = scr; + + return data; +} + +static WMenu* +configureUserMenu(WScreen *scr, proplist_t plum){ + char *mtitle; + WMenu *menu=NULL; + proplist_t elem, title, command, params; + int count,i; + WUserMenuData *data; + + if (!plum) return NULL; + else if (!PLIsArray(plum)){ + PLRelease(plum); + return NULL; + } + + count = PLGetNumberOfElements(plum); + if (!count) return NULL; + + elem = PLGetArrayElement(plum, 0); + if (!PLIsString(elem)){ + return NULL; + } + + mtitle = PLGetString(elem); + + menu=wMenuCreateForApp(scr, mtitle, True); + + for(i=1; iframe->title,NULL,NULL); + wMenuEntrySetCascade(menu, mentry, submenu); + } + else { + int idx = 0; + proplist_t instances=0; + + title = PLGetArrayElement(elem,idx++); + command = PLGetArrayElement(elem,idx++); + if (PLGetNumberOfElements(elem) >= 3) + params = PLGetArrayElement(elem,idx++); + + if (!title || !command) + return menu; + + if (!strcmp("SHORTCUT",PLGetString(command))){ + WMenuEntry *entry; + data = convertShortcuts(scr, params); + if (data){ + entry = wMenuAddCallback(menu, PLGetString(title), + notifyClient, data); + if (PLIsString(params)) { + entry->rtext = GetShortcutString(PLGetString(params)); + } + if (entry) { + entry->free_cdata = removeUserMenudata; + + if (PLGetNumberOfElements(elem) >= 4){ + instances = PLGetArrayElement(elem,idx++); + if(PLIsArray(instances)) + if (instances && PLGetNumberOfElements(instances) + && PLIsArray(instances)){ + entry->instances = PLRetain(instances); + } + } + } + } + } + /* else if */ + + } + } + return menu; +} + +void +wUserMenuRefreshInstances(WMenu *menu, WWindow *wwin) +{ + WMenuEntry* entry; + int i,j,count,paintflag; + + paintflag=0; + + if(!menu) return; + + for (i=0; ientry_no; i++) { + if (menu->entries[i]->instances){ + proplist_t ins; + int oldflag; + count = PLGetNumberOfElements(menu->entries[i]->instances); + + oldflag = menu->entries[i]->flags.enabled; + menu->entries[i]->flags.enabled = 0; + for (j=0; jentries[i]->instances,j); + if (!strcmp(wwin->wm_instance,PLGetString(ins))){ + menu->entries[i]->flags.enabled = 1; + break; + } + } + if (oldflag != menu->entries[i]->flags.enabled) + paintflag=1; + } + } + for (i=0; i < menu->cascade_no; i++) { + if (!menu->cascades[i]->flags.brother) + wUserMenuRefreshInstances(menu->cascades[i], wwin); + else + wUserMenuRefreshInstances(menu->cascades[i]->brother, wwin); + } + + if(paintflag) + wMenuPaint(menu); +} + + +static WMenu* +readUserMenuFile(WScreen *scr, char *file_name) +{ + WMenu *menu=NULL; + char *mtitle; + + proplist_t plum, elem, title, command, params; + + int count,i; + + plum = ReadProplistFromFile(file_name); + /**/ + + if(plum){ + menu = configureUserMenu(scr, plum); + PLRelease(plum); + } + return menu; +} + + +WMenu* +wUserMenuGet(WScreen *scr, WWindow *wwin){ + WMenu *menu = NULL; + char buffer[100]; + char *prefix, *menufile; + + prefix = getenv("HOME"); + if (!prefix) + prefix = "."; + menufile = malloc(strlen(prefix)+64); + if (!menufile) return NULL; + + if (wwin) { + FILE *f; + sprintf(menufile, "%s/%s.%s.menu", + prefix, wwin->wm_instance, wwin->wm_class); + f = fopen(menufile, "r"); + if (f) { + fclose(f); + menu = readUserMenuFile(scr, menufile); + } + } + + free(menufile); + return menu; +} + +#endif /* USER_MENU */ diff --git a/src/usermenu.h b/src/usermenu.h new file mode 100644 index 00000000..58a9a47c --- /dev/null +++ b/src/usermenu.h @@ -0,0 +1,10 @@ +#ifdef USER_MENU + +#ifndef _WUSERMENU_H_ +#define _WUSERMENU_H_ + +WMenu *wUserMenuGet(WScreen *scr, WWindow *wwin); +void wUserMenuRefreshInstances(WMenu *menu, WWindow *wwin); + +#endif +#endif /* USER_MENU */ diff --git a/src/wconfig.h.in b/src/wconfig.h.in index 02c657e9..5104b26a 100644 --- a/src/wconfig.h.in +++ b/src/wconfig.h.in @@ -45,13 +45,11 @@ #define TEXTURE_PLUGIN -/* undefine WEENDOZE_CYCLING to remove all Windoze style Alt-Tab cycling - * If define, windoze cycling must still be enabled with the - * WindozeCycling = YES and FinishedCyclingKey = Meta_L options - - not working yet +/* + * #define to enable WindozeCycling. Set WindozeCycling = YES in + * your WindowMaker config file */ -#undef WEENDOZE_CYCLING +#define WEENDOZE_CYCLE /* undefine ANIMATIONS if you don't want animations for iconification, diff --git a/src/wmsound.c b/src/wmsound.c index 54c1db8e..4ed1911e 100644 --- a/src/wmsound.c +++ b/src/wmsound.c @@ -19,29 +19,54 @@ extern WPreferences wPreferences; extern Atom _XA_WINDOWMAKER_WM_FUNCTION; void -wSoundServerGrab(char *name, Window window) +wSoundServerGrab(Window wm_win) { - if(soundServer==None && name!=NULL && strcmp(name,"WMSoundServer")==0) { - soundServer = window; + Window *lstChildren; + Window retRoot; + Window retParent; + int indexCount; + u_int numChildren; + XClassHint *retHint; + + if (XQueryTree(dpy, wm_win, &retRoot, &retParent, &lstChildren, &numChildren)) { + for (indexCount = 1; indexCount < numChildren; indexCount++) { + retHint = XAllocClassHint(); + if (!retHint) { + XFree(lstChildren); + return; + } + + XGetClassHint (dpy, lstChildren[indexCount], retHint); + if (retHint->res_class) { + if (strcmp("WMSoundServer", retHint->res_class) == 0) { + soundServer = lstChildren[indexCount]; + XFree(lstChildren); + if(retHint) { + XFree(retHint); + } + return; + } + } + XFree(retHint); + retHint = 0; + } + XFree(lstChildren); } -} - - -void -wSoundInit(Display *dpy) -{ - soundServer = 0; - sound_event.xclient.type = ClientMessage; - sound_event.xclient.message_type = _XA_WINDOWMAKER_WM_FUNCTION; - sound_event.xclient.format = 32; - sound_event.xclient.display = dpy; + return; } void wSoundPlay(long event_sound) { + if (!soundServer) { + wSoundServerGrab(DefaultRootWindow(dpy)); + } if(soundServer!=None && !wPreferences.no_sound) { + sound_event.xclient.type = ClientMessage; + sound_event.xclient.message_type = _XA_WINDOWMAKER_WM_FUNCTION; + sound_event.xclient.format = 32; + sound_event.xclient.display = dpy; sound_event.xclient.window = soundServer; sound_event.xclient.data.l[0] = event_sound; if (XSendEvent(dpy, soundServer, False, @@ -54,5 +79,4 @@ wSoundPlay(long event_sound) } } - #endif /* WMSOUND */ diff --git a/src/wmsound.h b/src/wmsound.h index 334866dc..5ba7f3ec 100644 --- a/src/wmsound.h +++ b/src/wmsound.h @@ -45,7 +45,6 @@ extern WApplication *wSoundApp; void wSoundPlay(long event_sound); -void wSoundInit(Display *dpy); -void wSoundServerGrab(char *name, Window window); +void wSoundServerGrab(Window wm_win); #endif /*WMSOUND_H_*/ diff --git a/util/wmaker.inst.in b/util/wmaker.inst.in index cdaf4658..8d1367ac 100644 --- a/util/wmaker.inst.in +++ b/util/wmaker.inst.in @@ -122,25 +122,25 @@ fi echo "Copying defaults database..." -FILES=`(cd $GLOBALDEFDIR;ls *)` +FILES=`(cd $GLOBALDEFDIR;ls -d *)` all="" for i in $FILES; do -# xx herbert - if [ -f $GSDIR/Defaults/$i -a -z "$BATCH" ]; then -# /xx herbert - echo "The configuration file \"$i\" already exists in your defaults database." - echo "Do you wish to replace it? [n] $all" - if [ "$all" != "a" ]; then - read foo - if [ "$foo" = "a" -o "$foo" = "A" ]; then - all="a" + if [ ! -d $GLOBALDEFDIR/$i ]; then + if [ -f $GSDIR/Defaults/$i -a -z "$BATCH" ]; then + echo "The configuration file \"$i\" already exists in your defaults database." + echo "Do you wish to replace it? [n] $all" + if [ "$all" != "a" ]; then + read foo + if [ "$foo" = "a" -o "$foo" = "A" ]; then + all="a" + fi fi - fi - if [ "$foo" = "y" -o "$foo" = "Y" -o "$all" = "a" ]; then + if [ "$foo" = "y" -o "$foo" = "Y" -o "$all" = "a" ]; then + copy $GLOBALDEFDIR/$i $GSDIR/Defaults/$i + fi + else copy $GLOBALDEFDIR/$i $GSDIR/Defaults/$i fi - else - copy $GLOBALDEFDIR/$i $GSDIR/Defaults/$i fi done