mirror of
https://github.com/gryf/wmaker.git
synced 2026-03-28 17:03:33 +01:00
Compare commits
76 Commits
4b946f69e2
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
329f82f6e7 | ||
|
|
60a900be28 | ||
|
|
c7c736e283 | ||
|
|
752a949492 | ||
|
|
be495bedbc | ||
| 412b3eace2 | |||
|
|
0aeba6064b | ||
|
|
ec115fedf7 | ||
|
|
29177f94ed | ||
| ae050ceb40 | |||
|
|
b27b44db72 | ||
| c6f029c946 | |||
|
|
66bf19c1e0 | ||
|
|
073235ada4 | ||
|
|
1b8eb63376 | ||
|
|
75a8299d18 | ||
|
|
cc0a652ea8 | ||
|
|
80079cd343 | ||
|
|
955c6793a6 | ||
|
|
189679b49c | ||
|
|
e45a3bc07d | ||
|
|
bc16a03722 | ||
|
|
260415eb42 | ||
|
|
c8174a4b2e | ||
|
|
2901b418ad | ||
|
|
ae6b03e50f | ||
|
|
128ba2ddc7 | ||
|
|
7ca96b9ed6 | ||
|
|
839061a25a | ||
|
|
1e63c590b6 | ||
|
|
92e1e9fb0b | ||
|
|
ddf0b20367 | ||
|
|
d303317a31 | ||
|
|
c620b354b5 | ||
|
|
ebac2bbcd8 | ||
|
|
3281349f8d | ||
|
|
3f5280987e | ||
|
|
6d0953bc22 | ||
|
|
ef1a504898 | ||
|
|
474b23344a | ||
|
|
77db6dc649 | ||
|
|
b09ac30233 | ||
|
|
6e14b6142b | ||
|
|
7778df2fc5 | ||
|
|
156841f80e | ||
|
|
c82e6dad5c | ||
|
|
95c68fe26d | ||
|
|
77c3b95fd5 | ||
|
|
b662d0827c | ||
|
|
a542934e67 | ||
|
|
d2b2c3238b | ||
|
|
d37a3162e0 | ||
|
|
9ddacfc29b | ||
|
|
7e21785710 | ||
|
|
7cfdf6bd68 | ||
|
|
72942267aa | ||
|
|
ac19c4bc07 | ||
|
|
14bd13b1be | ||
|
|
afe13d3e72 | ||
|
|
e356ef8c05 | ||
|
|
3d993a7323 | ||
|
|
a4a6e65ca9 | ||
|
|
4392fdc291 | ||
|
|
67e2f5e1ca | ||
|
|
3579c85af1 | ||
|
|
896bbce2e5 | ||
|
|
8f1ee27595 | ||
|
|
541947e9ef | ||
|
|
7bb7d0f4d6 | ||
|
|
da676c9e9e | ||
|
|
4edf589a5b | ||
|
|
709eec4bce | ||
|
|
b179803c11 | ||
|
|
5cd40deb20 | ||
|
|
9db1ea580d | ||
|
|
9e56f58742 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -133,6 +133,8 @@ WPrefs.app/WPrefs.desktop
|
|||||||
/WPrefs.app/po/*.mo
|
/WPrefs.app/po/*.mo
|
||||||
/util/po/*.pot
|
/util/po/*.pot
|
||||||
/util/po/*.mo
|
/util/po/*.mo
|
||||||
|
/wrlib/po/*.pot
|
||||||
|
/wrlib/po/*.mo
|
||||||
|
|
||||||
# Some text editors generate backup files
|
# Some text editors generate backup files
|
||||||
*~
|
*~
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ Changes since version 0.95.7:
|
|||||||
- debian: Ignore missing documentation for --runstatedir.
|
- debian: Ignore missing documentation for --runstatedir.
|
||||||
- debian: Use dh_autoreconf.
|
- debian: Use dh_autoreconf.
|
||||||
- debian: Simplify debian/rules.
|
- debian: Simplify debian/rules.
|
||||||
- debian: Fix typo occured. (Thanks, lintian.)
|
- debian: Fix typo occurred. (Thanks, lintian.)
|
||||||
- debian: wmaker manpage moved from 1x to 1.
|
- debian: wmaker manpage moved from 1x to 1.
|
||||||
(Andreas Metzler <ametzler@bebt.de>)
|
(Andreas Metzler <ametzler@bebt.de>)
|
||||||
- debian: Add wmiv to wmaker package.
|
- debian: Add wmiv to wmaker package.
|
||||||
@@ -498,7 +498,7 @@ Changes since version 0.95.6:
|
|||||||
- doc: Add manpage for wmiv.
|
- doc: Add manpage for wmiv.
|
||||||
(Doug Torrance <dtorrance@monmouthcollege.edu>)
|
(Doug Torrance <dtorrance@monmouthcollege.edu>)
|
||||||
- wmaker: replaced old email address with the official one
|
- wmaker: replaced old email address with the official one
|
||||||
- WINGs: Updated news with the API changes that occured between 0.95.6 and
|
- WINGs: Updated news with the API changes that occurred between 0.95.6 and
|
||||||
0.95.7
|
0.95.7
|
||||||
- WINGs: ran spell checker on the NEWS file
|
- WINGs: ran spell checker on the NEWS file
|
||||||
- WINGs: fix non-portable int conversion for printf in font panel size handling
|
- WINGs: fix non-portable int conversion for printf in font panel size handling
|
||||||
@@ -969,7 +969,7 @@ Changes since version 0.95.5:
|
|||||||
- WMaker: moved XGrab/XUngrabPointer into the conditional code
|
- WMaker: moved XGrab/XUngrabPointer into the conditional code
|
||||||
- News: created section dedicated to the changes related to 0.95.3
|
- News: created section dedicated to the changes related to 0.95.3
|
||||||
- News: added description of a change that may be interesting to users
|
- News: added description of a change that may be interesting to users
|
||||||
- News: added section to describe the changes that have occured in 0.95.4
|
- News: added section to describe the changes that have occurred in 0.95.4
|
||||||
- News: marked the current changes as part of 0.95.5 and describe the drawers
|
- News: marked the current changes as part of 0.95.5 and describe the drawers
|
||||||
feature
|
feature
|
||||||
- News: described the new features for future 0.95.6 release
|
- News: described the new features for future 0.95.6 release
|
||||||
@@ -1103,7 +1103,7 @@ Changes since version 0.95.5:
|
|||||||
#50158)
|
#50158)
|
||||||
- WPrefs: fix NULL pointer handling when getting the Modifiers (Coverity
|
- WPrefs: fix NULL pointer handling when getting the Modifiers (Coverity
|
||||||
#50200)
|
#50200)
|
||||||
- WPrefs: add warning when renderTexture encounters some unknow settings
|
- WPrefs: add warning when renderTexture encounters some unknown settings
|
||||||
(Christophe CURIS <christophe.curis@free.fr>)
|
(Christophe CURIS <christophe.curis@free.fr>)
|
||||||
- util/wmiv: add image auto orientation detection
|
- util/wmiv: add image auto orientation detection
|
||||||
(David Maciejak <david.maciejak@gmail.com>)
|
(David Maciejak <david.maciejak@gmail.com>)
|
||||||
|
|||||||
22
FAQ
22
FAQ
@@ -15,7 +15,7 @@ Summary of Contents:
|
|||||||
1.2 Where can I get Window Maker?
|
1.2 Where can I get Window Maker?
|
||||||
1.3 Where are the mailing list archives?
|
1.3 Where are the mailing list archives?
|
||||||
1.4 Where is more documentation on configuring Window Maker?
|
1.4 Where is more documentation on configuring Window Maker?
|
||||||
1.5 What is an App Icon?
|
1.5 What is an appicon?
|
||||||
1.6 How can I get a question added to the FAQ?
|
1.6 How can I get a question added to the FAQ?
|
||||||
1.7 How do I report bugs?
|
1.7 How do I report bugs?
|
||||||
1.8 Is there an anonymous cvs server?
|
1.8 Is there an anonymous cvs server?
|
||||||
@@ -134,7 +134,7 @@ Introduction:
|
|||||||
|
|
||||||
1.1 What is Window Maker?
|
1.1 What is Window Maker?
|
||||||
----------------------------------
|
----------------------------------
|
||||||
Window Maker is an elegant X11 window manger that emulates the
|
Window Maker is an elegant X11 window manager that emulates the
|
||||||
OpenStep desktop with some noticeable enhancements. Look at
|
OpenStep desktop with some noticeable enhancements. Look at
|
||||||
http://wm.current.nu/themes/my-themes.html and
|
http://wm.current.nu/themes/my-themes.html and
|
||||||
http://wm.current.nu/themes/screenshots.html
|
http://wm.current.nu/themes/screenshots.html
|
||||||
@@ -507,7 +507,7 @@ exec wmaker
|
|||||||
Things to try if it doesn't work: (somewhat fuzzy and random)
|
Things to try if it doesn't work: (somewhat fuzzy and random)
|
||||||
|
|
||||||
This should do it although I did have problems sometimes initially which I
|
This should do it although I did have problems sometimes initially which I
|
||||||
fixed by randomly trying absolute pathes for wmaker in .xsession/.xinitrc and/or
|
fixed by randomly trying absolute paths for wmaker in .xsession/.xinitrc and/or
|
||||||
making the dtprofile/.xinitrc/etc executable. It helps logging in on the console
|
making the dtprofile/.xinitrc/etc executable. It helps logging in on the console
|
||||||
(select from CDE login screen) and start X manually using 'X'.
|
(select from CDE login screen) and start X manually using 'X'.
|
||||||
If it works that way it should work when logging into the CDE environment.
|
If it works that way it should work when logging into the CDE environment.
|
||||||
@@ -628,7 +628,7 @@ the last app started by .xinitrc is closed.
|
|||||||
the X server will be closed, and your session will end.
|
the X server will be closed, and your session will end.
|
||||||
|
|
||||||
|
|
||||||
3.3 How do I "dock" AppIcons on the Clip?
|
3.3 How do I "dock" appicons on the Clip?
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
Just drag icons near it like you would for the dock. Note that if you place
|
Just drag icons near it like you would for the dock. Note that if you place
|
||||||
the clip near the dock, you may have problems docking appicons in either.
|
the clip near the dock, you may have problems docking appicons in either.
|
||||||
@@ -674,7 +674,7 @@ David Reviejo <dreviejo@arrakis.es> best summed up this answer:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
3.7 How do I "undock" AppIcons?
|
3.7 How do I "undock" appicons?
|
||||||
----------------------------------
|
----------------------------------
|
||||||
If the program is not running, just drag the icon to the middle of your
|
If the program is not running, just drag the icon to the middle of your
|
||||||
desktop (away from the dock and clip) and watch it disappear.
|
desktop (away from the dock and clip) and watch it disappear.
|
||||||
@@ -731,7 +731,7 @@ These directories will be listed under the "Search Path" section of WPrefs.
|
|||||||
3.11 When I run GNOME application they have no title bar.
|
3.11 When I run GNOME application they have no title bar.
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
The GNOME toolkit decided to behave his own way, so it draws its own title bar
|
The GNOME toolkit decided to behave in its own way, so it draws its own title bar
|
||||||
with buttons, and asks Window Maker to not draw anything (title bar, resize bar,
|
with buttons, and asks Window Maker to not draw anything (title bar, resize bar,
|
||||||
close and miniaturise button, ...).
|
close and miniaturise button, ...).
|
||||||
|
|
||||||
@@ -838,7 +838,7 @@ AlwaysUserIcon=Yes;
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
4.6 How do I get a Tile background for my AppIcons (those things in
|
4.6 How do I get a Tile background for my appicons (those things in
|
||||||
the dock)?
|
the dock)?
|
||||||
----------------------------------
|
----------------------------------
|
||||||
You need to change 1 line to your ~/GNUstep/Defaults/WindowMaker file.
|
You need to change 1 line to your ~/GNUstep/Defaults/WindowMaker file.
|
||||||
@@ -868,9 +868,9 @@ Application Icon'' Option then Save, Apply and close the dialog.
|
|||||||
|
|
||||||
This should allow you do dock the program normally.
|
This should allow you do dock the program normally.
|
||||||
|
|
||||||
Emulate Appicon does exactly the same thing as dockit, a small app
|
Emulate AppIcon does exactly the same thing as dockit, a small app
|
||||||
distributed with ancient versions of Window Maker before the Attribute
|
distributed with ancient versions of Window Maker before the Attribute
|
||||||
Editor existed (now deprecated for the obvious reason). If Emulate Appicon
|
Editor existed (now deprecated for the obvious reason). If Emulate AppIcon
|
||||||
does not work, dockit will not work either. Such applications violate the
|
does not work, dockit will not work either. Such applications violate the
|
||||||
ICCCM (Inter-Client Communication Conventions Manual) and are considered
|
ICCCM (Inter-Client Communication Conventions Manual) and are considered
|
||||||
badly coded for not setting the instance.class hints.
|
badly coded for not setting the instance.class hints.
|
||||||
@@ -898,7 +898,7 @@ NoAppIcon=Yes;
|
|||||||
|
|
||||||
4.9 How do I set a pixmap background?
|
4.9 How do I set a pixmap background?
|
||||||
----------------------------------
|
----------------------------------
|
||||||
Here is the in depth explanation straight from the NEWS file:
|
Here is the in-depth explanation straight from the NEWS file:
|
||||||
|
|
||||||
wmsetbg now accepts the following options:
|
wmsetbg now accepts the following options:
|
||||||
usage: wmsetbg [-options] image
|
usage: wmsetbg [-options] image
|
||||||
@@ -1476,7 +1476,7 @@ Themes:
|
|||||||
8.1 What exactly are themes?
|
8.1 What exactly are themes?
|
||||||
----------------------------------
|
----------------------------------
|
||||||
Themes are a great aspect of Window Maker allowing a user to simply
|
Themes are a great aspect of Window Maker allowing a user to simply
|
||||||
save the entire 'look' of their desktop in a Archive to distribute freely among
|
save the entire 'look' of their desktop in an archive to distribute freely among
|
||||||
friends, fellow users and/or the whole net in general. :)
|
friends, fellow users and/or the whole net in general. :)
|
||||||
|
|
||||||
See the theme-HOWTO at http://wm.current.nu/themes/theme-HOWTO.html
|
See the theme-HOWTO at http://wm.current.nu/themes/theme-HOWTO.html
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ Changes since wmaker 0.64.0:
|
|||||||
- Moved all internal handlers (timer, idle and input) to handlers.c
|
- Moved all internal handlers (timer, idle and input) to handlers.c
|
||||||
- simplified wevent.c and wutil.c.
|
- simplified wevent.c and wutil.c.
|
||||||
- fixed handling of input with poll (was broken)
|
- fixed handling of input with poll (was broken)
|
||||||
- fixed mem leak that occured when input handling was done with poll
|
- fixed mem leak that occurred when input handling was done with poll
|
||||||
- simpler and more straightforward event handling for timer, idle, input
|
- simpler and more straightforward event handling for timer, idle, input
|
||||||
and X events (also fixed some problems the old handling logic had)
|
and X events (also fixed some problems the old handling logic had)
|
||||||
- moved timer, idle and input handler definitions and prototypes from
|
- moved timer, idle and input handler definitions and prototypes from
|
||||||
|
|||||||
@@ -24,8 +24,9 @@
|
|||||||
#include <WINGs/WINGs.h>
|
#include <WINGs/WINGs.h>
|
||||||
#include <WINGs/WUtil.h>
|
#include <WINGs/WUtil.h>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
#include <stdnoreturn.h>
|
||||||
|
|
||||||
void wAbort()
|
noreturn void wAbort(void)
|
||||||
{
|
{
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
@@ -40,7 +41,7 @@ void show(WMWidget * self, void *data)
|
|||||||
WMSetLabelText(l, buf);
|
WMSetLabelText(l, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
void quit(WMWidget * self, void *data)
|
noreturn void quit(WMWidget * self, void *data)
|
||||||
{
|
{
|
||||||
(void) self;
|
(void) self;
|
||||||
(void) data;
|
(void) data;
|
||||||
|
|||||||
@@ -521,7 +521,7 @@ void testSlider(WMScreen * scr)
|
|||||||
void testTextField(WMScreen * scr)
|
void testTextField(WMScreen * scr)
|
||||||
{
|
{
|
||||||
WMWindow *win;
|
WMWindow *win;
|
||||||
WMTextField *field, *field2;
|
WMTextField *field, *field2, *field3;
|
||||||
|
|
||||||
windowCount++;
|
windowCount++;
|
||||||
|
|
||||||
@@ -540,6 +540,11 @@ void testTextField(WMScreen * scr)
|
|||||||
WMMoveWidget(field2, 20, 50);
|
WMMoveWidget(field2, 20, 50);
|
||||||
WMSetTextFieldAlignment(field2, WARight);
|
WMSetTextFieldAlignment(field2, WARight);
|
||||||
|
|
||||||
|
field3 = WMCreateTextField(win);
|
||||||
|
WMResizeWidget(field3, 200, 20);
|
||||||
|
WMMoveWidget(field3, 20, 80);
|
||||||
|
WMSetTextFieldAlignment(field3, WACenter);
|
||||||
|
|
||||||
WMRealizeWidget(win);
|
WMRealizeWidget(win);
|
||||||
WMMapSubwidgets(win);
|
WMMapSubwidgets(win);
|
||||||
WMMapWidget(win);
|
WMMapWidget(win);
|
||||||
|
|||||||
@@ -1462,6 +1462,10 @@ void WMSetPopUpButtonEnabled(WMPopUpButton *bPtr, Bool flag);
|
|||||||
|
|
||||||
Bool WMGetPopUpButtonEnabled(WMPopUpButton *bPtr);
|
Bool WMGetPopUpButtonEnabled(WMPopUpButton *bPtr);
|
||||||
|
|
||||||
|
int WMSelectPopUpButtonPreviousItem(WMPopUpButton *bPtr);
|
||||||
|
|
||||||
|
int WMSelectPopUpButtonNextItem(WMPopUpButton *bPtr);
|
||||||
|
|
||||||
/* ---[ WINGs/wprogressindicator.c ]------------------------------------- */
|
/* ---[ WINGs/wprogressindicator.c ]------------------------------------- */
|
||||||
|
|
||||||
WMProgressIndicator* WMCreateProgressIndicator(WMWidget *parent);
|
WMProgressIndicator* WMCreateProgressIndicator(WMWidget *parent);
|
||||||
@@ -1529,6 +1533,8 @@ void WMSetScrollViewRelief(WMScrollView *sPtr, WMReliefType type);
|
|||||||
|
|
||||||
WMRect WMGetScrollViewVisibleRect(WMScrollView *sPtr);
|
WMRect WMGetScrollViewVisibleRect(WMScrollView *sPtr);
|
||||||
|
|
||||||
|
void WMScrollViewScrollPoint(WMScrollView * sPtr, WMPoint point);
|
||||||
|
|
||||||
WMScroller* WMGetScrollViewHorizontalScroller(WMScrollView *sPtr);
|
WMScroller* WMGetScrollViewHorizontalScroller(WMScrollView *sPtr);
|
||||||
|
|
||||||
WMScroller* WMGetScrollViewVerticalScroller(WMScrollView *sPtr);
|
WMScroller* WMGetScrollViewVerticalScroller(WMScrollView *sPtr);
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ sk.po Slovak Jan 'judas' Tomka <judas@linux.sk>
|
|||||||
bg.po Bulgarian Anton Zinoviev <zinoviev@debian.org>
|
bg.po Bulgarian Anton Zinoviev <zinoviev@debian.org>
|
||||||
nl.po Dutch Alwin <translations@ziggo.nl>
|
nl.po Dutch Alwin <translations@ziggo.nl>
|
||||||
fy.po Frisian Alwin <translations@ziggo.nl>
|
fy.po Frisian Alwin <translations@ziggo.nl>
|
||||||
sr.po Serbian Strahinya Radich <contact@strahinja.org>
|
sr.po Serbian Strahinya Radich <sr@strahinja.org>
|
||||||
|
|
||||||
Notes
|
Notes
|
||||||
-----
|
-----
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2003-02-09 12:10+0200\n"
|
"PO-Revision-Date: 2003-02-09 12:10+0200\n"
|
||||||
"Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n"
|
"Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n"
|
||||||
"Language-Team: Bulgarian <dict@linux.zonebg.com>\n"
|
"Language-Team: Bulgarian <dict@linux.zonebg.com>\n"
|
||||||
|
"Language: bg\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2003-09-16 23:16+0200\n"
|
"PO-Revision-Date: 2003-09-16 23:16+0200\n"
|
||||||
"Last-Translator: Ernest Adrogué <eadrogue@gmx.net>\n"
|
"Last-Translator: Ernest Adrogué <eadrogue@gmx.net>\n"
|
||||||
"Language-Team: Catalan <ca@dodds.net>\n"
|
"Language-Team: Catalan <ca@dodds.net>\n"
|
||||||
|
"Language: ca\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2001-10-11 22:00+0100\n"
|
"PO-Revision-Date: 2001-10-11 22:00+0100\n"
|
||||||
"Last-Translator: Jiří Hnídek <jiri.hnidek@vslib.cz>\n"
|
"Last-Translator: Jiří Hnídek <jiri.hnidek@vslib.cz>\n"
|
||||||
"Language-Team: Czech <cz@li.org>\n"
|
"Language-Team: Czech <cz@li.org>\n"
|
||||||
|
"Language: cs\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: unknown\n"
|
"Content-Transfer-Encoding: unknown\n"
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2004-11-05 23:48+0100\n"
|
"PO-Revision-Date: 2004-11-05 23:48+0100\n"
|
||||||
"Last-Translator: shlomme@gmx.net\n"
|
"Last-Translator: shlomme@gmx.net\n"
|
||||||
"Language-Team: German\n"
|
"Language-Team: German\n"
|
||||||
|
"Language: de\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2002-01-09 21:20+0100\n"
|
"PO-Revision-Date: 2002-01-09 21:20+0100\n"
|
||||||
"Last-Translator: Emmanuel Benoit <tseeker@neptune.fr>\n"
|
"Last-Translator: Emmanuel Benoit <tseeker@neptune.fr>\n"
|
||||||
"Language-Team: Français <fr@li.org>\n"
|
"Language-Team: Français <fr@li.org>\n"
|
||||||
|
"Language: fr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: unknown\n"
|
"Content-Transfer-Encoding: unknown\n"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2014-02-18 00:25+0100\n"
|
"PO-Revision-Date: 2014-02-18 00:25+0100\n"
|
||||||
"Last-Translator: BALATON Zoltán <balaton@eik.bme.hu>\n"
|
"Last-Translator: BALATON Zoltán <balaton@eik.bme.hu>\n"
|
||||||
"Language-Team: Hungarian\n"
|
"Language-Team: Hungarian\n"
|
||||||
"Language: \n"
|
"Language: hu\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -843,9 +843,6 @@ msgstr "Kon invoerbestand \"%s\" niet openen"
|
|||||||
msgid "Could not create target file \"%s\""
|
msgid "Could not create target file \"%s\""
|
||||||
msgstr "Kon doelbestand \"%s\" niet aanmaken"
|
msgstr "Kon doelbestand \"%s\" niet aanmaken"
|
||||||
|
|
||||||
msgid "An error occured browsing '%s'."
|
|
||||||
msgstr "Er trad 'n fout op bij bladeren door '%s'."
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"invalid characted '%c' in arg-list for macro \"%s\" while expecting "
|
"invalid characted '%c' in arg-list for macro \"%s\" while expecting "
|
||||||
"parameter name"
|
"parameter name"
|
||||||
@@ -860,9 +857,6 @@ msgstr ""
|
|||||||
"ongeldig letterteken '%c' in arg.-lijst voor macro \"%s\", verwachtte ',' "
|
"ongeldig letterteken '%c' in arg.-lijst voor macro \"%s\", verwachtte ',' "
|
||||||
"of ')'"
|
"of ')'"
|
||||||
|
|
||||||
msgid "unknow directive '#%s'"
|
|
||||||
msgstr "onbekende aanwijzing '#%s'"
|
|
||||||
|
|
||||||
msgid "found #%s but have no matching #if"
|
msgid "found #%s but have no matching #if"
|
||||||
msgstr "#%s gevonden, maar heeft geen bijbehorende #if"
|
msgstr "#%s gevonden, maar heeft geen bijbehorende #if"
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2001-12-20 04:00+0100\n"
|
"PO-Revision-Date: 2001-12-20 04:00+0100\n"
|
||||||
"Last-Translator: Jan \"judas\" Tomka <judas@linux.sk>\n"
|
"Last-Translator: Jan \"judas\" Tomka <judas@linux.sk>\n"
|
||||||
"Language-Team: Slovak <sk@li.org>\n"
|
"Language-Team: Slovak <sk@li.org>\n"
|
||||||
|
"Language: sk\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# 1998-2006 Dan Pascu
|
# 1998-2006 Dan Pascu
|
||||||
# 2013-2020 Window Maker Developers Team
|
# 2013-2020 Window Maker Developers Team
|
||||||
# This file is distributed under the same license as the Window Maker package.
|
# This file is distributed under the same license as the Window Maker package.
|
||||||
# Strahinya Radich (Страхиња Радић) <contact@strahinja.org>, 2023.
|
# Strahinya Radich (Страхиња Радић) <sr@strahinja.org>, 2023.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -11,7 +11,7 @@ msgstr ""
|
|||||||
"Report-Msgid-Bugs-To: wmaker-dev@googlegroups.com\n"
|
"Report-Msgid-Bugs-To: wmaker-dev@googlegroups.com\n"
|
||||||
"POT-Creation-Date: 2023-11-02 19:36+0100\n"
|
"POT-Creation-Date: 2023-11-02 19:36+0100\n"
|
||||||
"PO-Revision-Date: 2023-11-02 19:48+0100\n"
|
"PO-Revision-Date: 2023-11-02 19:48+0100\n"
|
||||||
"Last-Translator: Страхиња Радић <contact@strahinja.org>\n"
|
"Last-Translator: Страхиња Радић <sr@strahinja.org>\n"
|
||||||
"Language-Team: Serbian <sr@li.org>\n"
|
"Language-Team: Serbian <sr@li.org>\n"
|
||||||
"Language: sr\n"
|
"Language: sr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
|||||||
@@ -70,37 +70,30 @@ static Bool hasProperty(FcPattern * pattern, const char *property)
|
|||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Bool hasPropertyWithStringValue(FcPattern * pattern, const char *object, const char *value)
|
|
||||||
{
|
|
||||||
FcChar8 *str;
|
|
||||||
int id;
|
|
||||||
|
|
||||||
if (!value || value[0] == 0)
|
|
||||||
return True;
|
|
||||||
|
|
||||||
id = 0;
|
|
||||||
while (FcPatternGetString(pattern, object, id, &str) == FcResultMatch) {
|
|
||||||
if (strcasecmp(value, (char *)str) == 0) {
|
|
||||||
return True;
|
|
||||||
}
|
|
||||||
id++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return False;
|
|
||||||
}
|
|
||||||
|
|
||||||
static char *makeFontOfSize(const char *font, int size, const char *fallback)
|
static char *makeFontOfSize(const char *font, int size, const char *fallback)
|
||||||
{
|
{
|
||||||
FcPattern *pattern;
|
FcPattern *pattern = NULL;
|
||||||
char *result;
|
char *result;
|
||||||
|
|
||||||
if (font[0] == '-') {
|
if (font && font[0] == '-') {
|
||||||
pattern = xlfdToFcPattern(font);
|
pattern = xlfdToFcPattern(font);
|
||||||
} else {
|
} else {
|
||||||
pattern = FcNameParse((const FcChar8 *) font);
|
pattern = FcNameParse((const FcChar8 *) font);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*FcPatternPrint(pattern); */
|
if (!pattern) {
|
||||||
|
wwarning(_("could not load font spec: %s."), font);
|
||||||
|
if (!fallback)
|
||||||
|
return NULL;
|
||||||
|
pattern = FcPatternCreate();
|
||||||
|
if (!pattern)
|
||||||
|
return NULL;
|
||||||
|
if (!FcPatternAddString(pattern, FC_FAMILY, (const FcChar8 *) fallback)) {
|
||||||
|
wfatal(_("could not load default font spec: %s."), fallback);
|
||||||
|
FcPatternDestroy(pattern);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
FcPatternDel(pattern, FC_PIXEL_SIZE);
|
FcPatternDel(pattern, FC_PIXEL_SIZE);
|
||||||
@@ -109,12 +102,6 @@ static char *makeFontOfSize(const char *font, int size, const char *fallback)
|
|||||||
FcPatternAddDouble(pattern, FC_PIXEL_SIZE, (double)DEFAULT_SIZE);
|
FcPatternAddDouble(pattern, FC_PIXEL_SIZE, (double)DEFAULT_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fallback && !hasPropertyWithStringValue(pattern, FC_FAMILY, fallback)) {
|
|
||||||
FcPatternAddString(pattern, FC_FAMILY, (const FcChar8 *) fallback);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*FcPatternPrint(pattern); */
|
|
||||||
|
|
||||||
result = (char *)FcNameUnparse(pattern);
|
result = (char *)FcNameUnparse(pattern);
|
||||||
FcPatternDestroy(pattern);
|
FcPatternDestroy(pattern);
|
||||||
|
|
||||||
@@ -135,7 +122,7 @@ WMFont *WMCreateFont(WMScreen * scrPtr, const char *fontName)
|
|||||||
double size;
|
double size;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (fontName[0] == '-') {
|
if (fontName && fontName[0] == '-') {
|
||||||
fname = xlfdToFcName(fontName);
|
fname = xlfdToFcName(fontName);
|
||||||
} else {
|
} else {
|
||||||
fname = wstrdup(fontName);
|
fname = wstrdup(fontName);
|
||||||
@@ -187,6 +174,10 @@ WMFont *WMCreateFont(WMScreen * scrPtr, const char *fontName)
|
|||||||
pango_layout_set_font_description(layout, description);
|
pango_layout_set_font_description(layout, description);
|
||||||
|
|
||||||
font->layout = layout;
|
font->layout = layout;
|
||||||
|
|
||||||
|
pango_font_description_free(description);
|
||||||
|
g_object_unref(context);
|
||||||
|
FcPatternDestroy(pattern);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
assert(WMHashInsert(scrPtr->fontCache, font->name, font) == NULL);
|
assert(WMHashInsert(scrPtr->fontCache, font->name, font) == NULL);
|
||||||
@@ -210,6 +201,11 @@ void WMReleaseFont(WMFont * font)
|
|||||||
font->refCount--;
|
font->refCount--;
|
||||||
if (font->refCount < 1) {
|
if (font->refCount < 1) {
|
||||||
XftFontClose(font->screen->display, font->font);
|
XftFontClose(font->screen->display, font->font);
|
||||||
|
#ifdef USE_PANGO
|
||||||
|
if (font->layout) {
|
||||||
|
g_object_unref(font->layout);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (font->name) {
|
if (font->name) {
|
||||||
WMHashRemove(font->screen->fontCache, font->name);
|
WMHashRemove(font->screen->fontCache, font->name);
|
||||||
wfree(font->name);
|
wfree(font->name);
|
||||||
@@ -262,7 +258,11 @@ WMFont *WMSystemFontOfSize(WMScreen * scrPtr, int size)
|
|||||||
WMFont *font;
|
WMFont *font;
|
||||||
char *fontSpec;
|
char *fontSpec;
|
||||||
|
|
||||||
fontSpec = makeFontOfSize(WINGsConfiguration.systemFont, size, NULL);
|
fontSpec = makeFontOfSize(WINGsConfiguration.systemFont, size, DEFAULT_FONT);
|
||||||
|
|
||||||
|
if (!fontSpec) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
font = WMCreateFont(scrPtr, fontSpec);
|
font = WMCreateFont(scrPtr, fontSpec);
|
||||||
|
|
||||||
@@ -280,7 +280,11 @@ WMFont *WMBoldSystemFontOfSize(WMScreen * scrPtr, int size)
|
|||||||
WMFont *font;
|
WMFont *font;
|
||||||
char *fontSpec;
|
char *fontSpec;
|
||||||
|
|
||||||
fontSpec = makeFontOfSize(WINGsConfiguration.boldSystemFont, size, NULL);
|
fontSpec = makeFontOfSize(WINGsConfiguration.boldSystemFont, size, DEFAULT_FONT);
|
||||||
|
|
||||||
|
if (!fontSpec) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
font = WMCreateFont(scrPtr, fontSpec);
|
font = WMCreateFont(scrPtr, fontSpec);
|
||||||
|
|
||||||
@@ -336,7 +340,7 @@ void WMDrawString(WMScreen * scr, Drawable d, WMColor * color, WMFont * font, in
|
|||||||
|
|
||||||
#ifdef USE_PANGO
|
#ifdef USE_PANGO
|
||||||
previous_text = pango_layout_get_text(font->layout);
|
previous_text = pango_layout_get_text(font->layout);
|
||||||
if ((previous_text == NULL) || (strcmp(text, previous_text) != 0))
|
if ((previous_text == NULL) || (strncmp(text, previous_text, length) != 0) || previous_text[length] != '\0')
|
||||||
pango_layout_set_text(font->layout, text, length);
|
pango_layout_set_text(font->layout, text, length);
|
||||||
pango_xft_render_layout(scr->xftdraw, &xftcolor, font->layout, x * PANGO_SCALE, y * PANGO_SCALE);
|
pango_xft_render_layout(scr->xftdraw, &xftcolor, font->layout, x * PANGO_SCALE, y * PANGO_SCALE);
|
||||||
#else
|
#else
|
||||||
@@ -374,7 +378,7 @@ WMDrawImageString(WMScreen * scr, Drawable d, WMColor * color, WMColor * backgro
|
|||||||
|
|
||||||
#ifdef USE_PANGO
|
#ifdef USE_PANGO
|
||||||
previous_text = pango_layout_get_text(font->layout);
|
previous_text = pango_layout_get_text(font->layout);
|
||||||
if ((previous_text == NULL) || (strcmp(text, previous_text) != 0))
|
if ((previous_text == NULL) || (strncmp(text, previous_text, length) != 0) || previous_text[length] != '\0')
|
||||||
pango_layout_set_text(font->layout, text, length);
|
pango_layout_set_text(font->layout, text, length);
|
||||||
pango_xft_render_layout(scr->xftdraw, &textColor, font->layout, x * PANGO_SCALE, y * PANGO_SCALE);
|
pango_xft_render_layout(scr->xftdraw, &textColor, font->layout, x * PANGO_SCALE, y * PANGO_SCALE);
|
||||||
#else
|
#else
|
||||||
|
|||||||
507
WINGs/wlist.c
507
WINGs/wlist.c
@@ -1,5 +1,7 @@
|
|||||||
|
|
||||||
#include "WINGsP.h"
|
#include "WINGsP.h"
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <strings.h>
|
||||||
|
|
||||||
const char *WMListDidScrollNotification = "WMListDidScrollNotification";
|
const char *WMListDidScrollNotification = "WMListDidScrollNotification";
|
||||||
const char *WMListSelectionDidChangeNotification = "WMListSelectionDidChangeNotification";
|
const char *WMListSelectionDidChangeNotification = "WMListSelectionDidChangeNotification";
|
||||||
@@ -27,11 +29,15 @@ typedef struct W_List {
|
|||||||
WMHandlerID *idleID; /* for updating the scroller after adding elements */
|
WMHandlerID *idleID; /* for updating the scroller after adding elements */
|
||||||
|
|
||||||
WMHandlerID *selectID; /* for selecting items in list while scrolling */
|
WMHandlerID *selectID; /* for selecting items in list while scrolling */
|
||||||
|
WMHandlerID *typeaheadID; /* for clearing typeahead buffer */
|
||||||
|
|
||||||
WMScroller *vScroller;
|
WMScroller *vScroller;
|
||||||
|
|
||||||
Pixmap doubleBuffer;
|
Pixmap doubleBuffer;
|
||||||
|
|
||||||
|
char *typeahead;
|
||||||
|
int typeaheadLen;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
unsigned int allowMultipleSelection:1;
|
unsigned int allowMultipleSelection:1;
|
||||||
unsigned int allowEmptySelection:1;
|
unsigned int allowEmptySelection:1;
|
||||||
@@ -48,6 +54,7 @@ typedef struct W_List {
|
|||||||
#define DEFAULT_HEIGHT 150
|
#define DEFAULT_HEIGHT 150
|
||||||
|
|
||||||
#define SCROLL_DELAY 100
|
#define SCROLL_DELAY 100
|
||||||
|
#define TYPEAHEAD_CLEAR_DELAY 700
|
||||||
|
|
||||||
static void destroyList(List * lPtr);
|
static void destroyList(List * lPtr);
|
||||||
static void paintList(List * lPtr);
|
static void paintList(List * lPtr);
|
||||||
@@ -62,6 +69,8 @@ static void scrollBackwardSelecting(void *data);
|
|||||||
static void vScrollCallBack(WMWidget * scroller, void *self);
|
static void vScrollCallBack(WMWidget * scroller, void *self);
|
||||||
|
|
||||||
static void toggleItemSelection(WMList * lPtr, int index);
|
static void toggleItemSelection(WMList * lPtr, int index);
|
||||||
|
static void jumpToFirstItemWithPrefix(WMList * lPtr, const char *prefix, int prefixLen);
|
||||||
|
static void typeaheadTimeout(void *data);
|
||||||
|
|
||||||
static void updateGeometry(WMList * lPtr);
|
static void updateGeometry(WMList * lPtr);
|
||||||
static void didResizeList(W_ViewDelegate * self, WMView * view);
|
static void didResizeList(W_ViewDelegate * self, WMView * view);
|
||||||
@@ -113,6 +122,9 @@ WMList *WMCreateList(WMWidget * parent)
|
|||||||
W_Screen *scrPtr = W_VIEW(parent)->screen;
|
W_Screen *scrPtr = W_VIEW(parent)->screen;
|
||||||
|
|
||||||
lPtr = wmalloc(sizeof(List));
|
lPtr = wmalloc(sizeof(List));
|
||||||
|
lPtr->typeahead = NULL;
|
||||||
|
lPtr->typeaheadLen = 0;
|
||||||
|
lPtr->typeaheadID = NULL;
|
||||||
|
|
||||||
lPtr->widgetClass = WC_List;
|
lPtr->widgetClass = WC_List;
|
||||||
|
|
||||||
@@ -129,7 +141,8 @@ WMList *WMCreateList(WMWidget * parent)
|
|||||||
| ClientMessageMask, handleEvents, lPtr);
|
| ClientMessageMask, handleEvents, lPtr);
|
||||||
|
|
||||||
WMCreateEventHandler(lPtr->view, ButtonPressMask | ButtonReleaseMask
|
WMCreateEventHandler(lPtr->view, ButtonPressMask | ButtonReleaseMask
|
||||||
| EnterWindowMask | LeaveWindowMask | ButtonMotionMask, handleActionEvents, lPtr);
|
| EnterWindowMask | LeaveWindowMask | ButtonMotionMask
|
||||||
|
| KeyPressMask, handleActionEvents, lPtr);
|
||||||
|
|
||||||
lPtr->itemHeight = WMFontHeight(scrPtr->normalFont) + 1;
|
lPtr->itemHeight = WMFontHeight(scrPtr->normalFont) + 1;
|
||||||
|
|
||||||
@@ -288,6 +301,14 @@ void WMClearList(WMList * lPtr)
|
|||||||
WMDeleteTimerHandler(lPtr->selectID);
|
WMDeleteTimerHandler(lPtr->selectID);
|
||||||
lPtr->selectID = NULL;
|
lPtr->selectID = NULL;
|
||||||
}
|
}
|
||||||
|
if (lPtr->typeaheadID) {
|
||||||
|
WMDeleteTimerHandler(lPtr->typeaheadID);
|
||||||
|
lPtr->typeaheadID = NULL;
|
||||||
|
}
|
||||||
|
if (lPtr->typeahead) {
|
||||||
|
lPtr->typeahead[0] = '\0';
|
||||||
|
lPtr->typeaheadLen = 0;
|
||||||
|
}
|
||||||
if (lPtr->view->flags.realized) {
|
if (lPtr->view->flags.realized) {
|
||||||
updateScroller(lPtr);
|
updateScroller(lPtr);
|
||||||
}
|
}
|
||||||
@@ -495,15 +516,16 @@ static void paintItem(List * lPtr, int index)
|
|||||||
static void paintList(List * lPtr)
|
static void paintList(List * lPtr)
|
||||||
{
|
{
|
||||||
W_Screen *scrPtr = lPtr->view->screen;
|
W_Screen *scrPtr = lPtr->view->screen;
|
||||||
int i, lim;
|
int i, lim, itemCount;
|
||||||
|
|
||||||
if (!lPtr->view->flags.mapped)
|
if (!lPtr->view->flags.mapped)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (WMGetArrayItemCount(lPtr->items) > 0) {
|
itemCount = WMGetArrayItemCount(lPtr->items);
|
||||||
if (lPtr->topItem + lPtr->fullFitLines + lPtr->flags.dontFitAll > WMGetArrayItemCount(lPtr->items)) {
|
if (itemCount > 0) {
|
||||||
|
if (lPtr->topItem + lPtr->fullFitLines + lPtr->flags.dontFitAll > itemCount) {
|
||||||
|
|
||||||
lim = WMGetArrayItemCount(lPtr->items) - lPtr->topItem;
|
lim = itemCount - lPtr->topItem;
|
||||||
XClearArea(scrPtr->display, lPtr->view->window, 19,
|
XClearArea(scrPtr->display, lPtr->view->window, 19,
|
||||||
2 + lim * lPtr->itemHeight, lPtr->view->size.width - 21,
|
2 + lim * lPtr->itemHeight, lPtr->view->size.width - 21,
|
||||||
lPtr->view->size.height - lim * lPtr->itemHeight - 3, False);
|
lPtr->view->size.height - lim * lPtr->itemHeight - 3, False);
|
||||||
@@ -820,7 +842,7 @@ void WMSetListSelectionToRange(WMList * lPtr, WMRange range)
|
|||||||
|
|
||||||
void WMSelectAllListItems(WMList * lPtr)
|
void WMSelectAllListItems(WMList * lPtr)
|
||||||
{
|
{
|
||||||
int i;
|
int i, itemCount;
|
||||||
WMListItem *item;
|
WMListItem *item;
|
||||||
|
|
||||||
if (!lPtr->flags.allowMultipleSelection)
|
if (!lPtr->flags.allowMultipleSelection)
|
||||||
@@ -833,7 +855,8 @@ void WMSelectAllListItems(WMList * lPtr)
|
|||||||
WMFreeArray(lPtr->selectedItems);
|
WMFreeArray(lPtr->selectedItems);
|
||||||
lPtr->selectedItems = WMCreateArrayWithArray(lPtr->items);
|
lPtr->selectedItems = WMCreateArrayWithArray(lPtr->items);
|
||||||
|
|
||||||
for (i = 0; i < WMGetArrayItemCount(lPtr->items); i++) {
|
itemCount = WMGetArrayItemCount(lPtr->items);
|
||||||
|
for (i = 0; i < itemCount; i++) {
|
||||||
item = WMGetFromArray(lPtr->items, i);
|
item = WMGetFromArray(lPtr->items, i);
|
||||||
if (!item->selected) {
|
if (!item->selected) {
|
||||||
item->selected = 1;
|
item->selected = 1;
|
||||||
@@ -859,10 +882,11 @@ void WMSelectAllListItems(WMList * lPtr)
|
|||||||
*/
|
*/
|
||||||
static void unselectAllListItems(WMList * lPtr, WMListItem * exceptThis)
|
static void unselectAllListItems(WMList * lPtr, WMListItem * exceptThis)
|
||||||
{
|
{
|
||||||
int i;
|
int i, itemCount;
|
||||||
WMListItem *item;
|
WMListItem *item;
|
||||||
|
|
||||||
for (i = 0; i < WMGetArrayItemCount(lPtr->items); i++) {
|
itemCount = WMGetArrayItemCount(lPtr->items);
|
||||||
|
for (i = 0; i < itemCount; i++) {
|
||||||
item = WMGetFromArray(lPtr->items, i);
|
item = WMGetFromArray(lPtr->items, i);
|
||||||
if (item != exceptThis && item->selected) {
|
if (item != exceptThis && item->selected) {
|
||||||
item->selected = 0;
|
item->selected = 0;
|
||||||
@@ -920,6 +944,85 @@ static void toggleItemSelection(WMList * lPtr, int index)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int findItemWithPrefix(List * lPtr, const char *prefix, int prefixLen)
|
||||||
|
{
|
||||||
|
if (prefixLen <= 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
int i, itemCount;
|
||||||
|
|
||||||
|
itemCount = WMGetArrayItemCount(lPtr->items);
|
||||||
|
for (i = 0; i < itemCount; i++) {
|
||||||
|
WMListItem *item = WMGetFromArray(lPtr->items, i);
|
||||||
|
|
||||||
|
if (!item || !item->text || item->text[0] == '\0')
|
||||||
|
continue;
|
||||||
|
if (strncasecmp(item->text, prefix, prefixLen) == 0)
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void jumpToFirstItemWithPrefix(WMList * lPtr, const char *prefix, int prefixLen)
|
||||||
|
{
|
||||||
|
int index, oldTop, visibleCount;
|
||||||
|
|
||||||
|
index = findItemWithPrefix(lPtr, prefix, prefixLen);
|
||||||
|
if (index < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (lPtr->flags.allowMultipleSelection) {
|
||||||
|
WMRange range;
|
||||||
|
|
||||||
|
range.position = index;
|
||||||
|
range.count = 1;
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
} else {
|
||||||
|
WMSelectListItem(lPtr, index);
|
||||||
|
/* Trigger action callback */
|
||||||
|
if (lPtr->action)
|
||||||
|
(*lPtr->action) (lPtr, lPtr->clientData);
|
||||||
|
}
|
||||||
|
|
||||||
|
visibleCount = lPtr->fullFitLines + lPtr->flags.dontFitAll;
|
||||||
|
if (visibleCount < 1)
|
||||||
|
visibleCount = 1;
|
||||||
|
|
||||||
|
oldTop = lPtr->topItem;
|
||||||
|
if (index < lPtr->topItem) {
|
||||||
|
lPtr->topItem = index;
|
||||||
|
} else {
|
||||||
|
if (lPtr->flags.dontFitAll) {
|
||||||
|
if (lPtr->fullFitLines <= 0) {
|
||||||
|
lPtr->topItem = index;
|
||||||
|
} else {
|
||||||
|
int lastFullyVisible = lPtr->topItem + lPtr->fullFitLines - 1;
|
||||||
|
if (index > lastFullyVisible)
|
||||||
|
lPtr->topItem = index - lPtr->fullFitLines + 1;
|
||||||
|
}
|
||||||
|
} else if (index >= lPtr->topItem + visibleCount) {
|
||||||
|
lPtr->topItem = index - visibleCount + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (lPtr->topItem < 0)
|
||||||
|
lPtr->topItem = 0;
|
||||||
|
|
||||||
|
if (lPtr->view->flags.realized && lPtr->topItem != oldTop)
|
||||||
|
updateScroller(lPtr);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void typeaheadTimeout(void *data)
|
||||||
|
{
|
||||||
|
List *lPtr = (List *) data;
|
||||||
|
|
||||||
|
lPtr->typeaheadID = NULL;
|
||||||
|
if (lPtr->typeahead) {
|
||||||
|
lPtr->typeahead[0] = '\0';
|
||||||
|
lPtr->typeaheadLen = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void handleActionEvents(XEvent * event, void *data)
|
static void handleActionEvents(XEvent * event, void *data)
|
||||||
{
|
{
|
||||||
List *lPtr = (List *) data;
|
List *lPtr = (List *) data;
|
||||||
@@ -959,6 +1062,7 @@ static void handleActionEvents(XEvent * event, void *data)
|
|||||||
WMDeleteTimerHandler(lPtr->selectID);
|
WMDeleteTimerHandler(lPtr->selectID);
|
||||||
lPtr->selectID = NULL;
|
lPtr->selectID = NULL;
|
||||||
}
|
}
|
||||||
|
WMSetFocusToWidget(lPtr);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LeaveNotify:
|
case LeaveNotify:
|
||||||
@@ -970,6 +1074,9 @@ static void handleActionEvents(XEvent * event, void *data)
|
|||||||
lPtr->selectID = WMAddTimerHandler(SCROLL_DELAY, scrollBackwardSelecting, lPtr);
|
lPtr->selectID = WMAddTimerHandler(SCROLL_DELAY, scrollBackwardSelecting, lPtr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
WMWidget *parentWidget = WMWidgetOfView(lPtr->view->parent);
|
||||||
|
if (parentWidget)
|
||||||
|
WMSetFocusToWidget(parentWidget);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ButtonPress:
|
case ButtonPress:
|
||||||
@@ -1076,6 +1183,381 @@ static void handleActionEvents(XEvent * event, void *data)
|
|||||||
prevItem = tmp;
|
prevItem = tmp;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case KeyPress:
|
||||||
|
char buffer[16];
|
||||||
|
KeySym ksym;
|
||||||
|
Status status;
|
||||||
|
int len;
|
||||||
|
WMScreen *scr = lPtr->view->screen;
|
||||||
|
XWindowAttributes wattr;
|
||||||
|
|
||||||
|
if (event->xkey.state & (ControlMask | Mod1Mask))
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (!(XGetWindowAttributes(scr->display, lPtr->view->window, &wattr) && wattr.map_state == IsViewable))
|
||||||
|
break;
|
||||||
|
|
||||||
|
len = W_LookupString(lPtr->view, &event->xkey, buffer, (int)sizeof(buffer) - 1, &ksym, &status);
|
||||||
|
if (len < 0)
|
||||||
|
break;
|
||||||
|
if (len > 0)
|
||||||
|
buffer[len] = '\0';
|
||||||
|
|
||||||
|
/* Handle navigation keys */
|
||||||
|
switch (ksym) {
|
||||||
|
case XK_Up: {
|
||||||
|
int newRow;
|
||||||
|
int itemCount = WMGetArrayItemCount(lPtr->items);
|
||||||
|
int cur = WMGetListSelectedItemRow(lPtr);
|
||||||
|
|
||||||
|
if (lPtr->flags.allowMultipleSelection && WMGetArrayItemCount(lPtr->selectedItems) > 0) {
|
||||||
|
WMListItem *lastSel = WMGetFromArray(lPtr->selectedItems, WMGetArrayItemCount(lPtr->selectedItems) - 1);
|
||||||
|
if (lastSel)
|
||||||
|
cur = WMGetFirstInArray(lPtr->items, lastSel);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cur == WLNotFound)
|
||||||
|
cur = lPtr->topItem;
|
||||||
|
newRow = cur - 1;
|
||||||
|
if (newRow < 0)
|
||||||
|
newRow = 0;
|
||||||
|
|
||||||
|
if (newRow != cur && itemCount > 0) {
|
||||||
|
if (lPtr->flags.allowMultipleSelection) {
|
||||||
|
if (event->xkey.state & ShiftMask) {
|
||||||
|
WMRange range;
|
||||||
|
int anchor = WMGetListSelectedItemRow(lPtr);
|
||||||
|
if (anchor == WLNotFound || WMGetArrayItemCount(lPtr->selectedItems) == 0) {
|
||||||
|
anchor = cur;
|
||||||
|
}
|
||||||
|
|
||||||
|
range.position = anchor;
|
||||||
|
if (newRow >= anchor)
|
||||||
|
range.count = newRow - anchor + 1;
|
||||||
|
else
|
||||||
|
range.count = newRow - anchor - 1;
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
} else {
|
||||||
|
WMRange range = { .position = newRow, .count = 1 };
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
lastClicked = newRow;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
WMSelectListItem(lPtr, newRow);
|
||||||
|
lastClicked = newRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ensure visibility */
|
||||||
|
if (newRow < lPtr->topItem) {
|
||||||
|
lPtr->topItem = newRow;
|
||||||
|
if (lPtr->view->flags.realized)
|
||||||
|
updateScroller(lPtr);
|
||||||
|
}
|
||||||
|
/* Trigger action callback */
|
||||||
|
if (lPtr->action)
|
||||||
|
(*lPtr->action) (lPtr, lPtr->clientData);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case XK_Down: {
|
||||||
|
int newRow;
|
||||||
|
int itemCount = WMGetArrayItemCount(lPtr->items);
|
||||||
|
int cur = WMGetListSelectedItemRow(lPtr);
|
||||||
|
|
||||||
|
if (lPtr->flags.allowMultipleSelection && WMGetArrayItemCount(lPtr->selectedItems) > 0) {
|
||||||
|
WMListItem *lastSel = WMGetFromArray(lPtr->selectedItems, WMGetArrayItemCount(lPtr->selectedItems) - 1);
|
||||||
|
if (lastSel)
|
||||||
|
cur = WMGetFirstInArray(lPtr->items, lastSel);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cur == WLNotFound)
|
||||||
|
cur = lPtr->topItem;
|
||||||
|
newRow = cur + 1;
|
||||||
|
if (newRow >= itemCount)
|
||||||
|
newRow = itemCount - 1;
|
||||||
|
|
||||||
|
if (newRow != cur && itemCount > 0) {
|
||||||
|
if (lPtr->flags.allowMultipleSelection) {
|
||||||
|
if (event->xkey.state & ShiftMask) {
|
||||||
|
WMRange range;
|
||||||
|
int anchor = WMGetListSelectedItemRow(lPtr);
|
||||||
|
if (anchor == WLNotFound || WMGetArrayItemCount(lPtr->selectedItems) == 0) {
|
||||||
|
anchor = cur;
|
||||||
|
}
|
||||||
|
|
||||||
|
range.position = anchor;
|
||||||
|
if (newRow >= anchor)
|
||||||
|
range.count = newRow - anchor + 1;
|
||||||
|
else
|
||||||
|
range.count = newRow - anchor - 1;
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
} else {
|
||||||
|
WMRange range = { .position = newRow, .count = 1 };
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
lastClicked = newRow;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
WMSelectListItem(lPtr, newRow);
|
||||||
|
lastClicked = newRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ensure visibility */
|
||||||
|
if (newRow > (lPtr->topItem + lPtr->fullFitLines - 1)) {
|
||||||
|
lPtr->topItem = newRow - lPtr->fullFitLines + 1;
|
||||||
|
if (lPtr->topItem < 0)
|
||||||
|
lPtr->topItem = 0;
|
||||||
|
/* Ensure we don't scroll past the end */
|
||||||
|
if (lPtr->topItem + lPtr->fullFitLines > itemCount)
|
||||||
|
lPtr->topItem = itemCount - lPtr->fullFitLines;
|
||||||
|
if (lPtr->topItem < 0)
|
||||||
|
lPtr->topItem = 0;
|
||||||
|
if (lPtr->view->flags.realized)
|
||||||
|
updateScroller(lPtr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Trigger action callback */
|
||||||
|
if (lPtr->action)
|
||||||
|
(*lPtr->action) (lPtr, lPtr->clientData);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case XK_Page_Up: {
|
||||||
|
int newRow;
|
||||||
|
int page = lPtr->fullFitLines > 0 ? lPtr->fullFitLines : 1;
|
||||||
|
int cur = WMGetListSelectedItemRow(lPtr);
|
||||||
|
|
||||||
|
if (cur == WLNotFound)
|
||||||
|
cur = lPtr->topItem;
|
||||||
|
newRow = cur - page;
|
||||||
|
if (newRow < 0)
|
||||||
|
newRow = 0;
|
||||||
|
|
||||||
|
if (newRow != cur) {
|
||||||
|
if (lPtr->flags.allowMultipleSelection) {
|
||||||
|
if (event->xkey.state & ShiftMask) {
|
||||||
|
WMRange range;
|
||||||
|
int anchor = WMGetListSelectedItemRow(lPtr);
|
||||||
|
if (anchor == WLNotFound || WMGetArrayItemCount(lPtr->selectedItems) == 0) {
|
||||||
|
anchor = cur;
|
||||||
|
}
|
||||||
|
|
||||||
|
range.position = anchor;
|
||||||
|
if (newRow >= anchor)
|
||||||
|
range.count = newRow - anchor + 1;
|
||||||
|
else
|
||||||
|
range.count = newRow - anchor - 1;
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
} else {
|
||||||
|
WMRange range = { .position = newRow, .count = 1 };
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
lastClicked = newRow;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
WMSelectListItem(lPtr, newRow);
|
||||||
|
lastClicked = newRow;
|
||||||
|
}
|
||||||
|
if (newRow < lPtr->topItem) {
|
||||||
|
lPtr->topItem = newRow;
|
||||||
|
if (lPtr->view->flags.realized)
|
||||||
|
updateScroller(lPtr);
|
||||||
|
}
|
||||||
|
/* Trigger action callback */
|
||||||
|
if (lPtr->action)
|
||||||
|
(*lPtr->action) (lPtr, lPtr->clientData);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case XK_Page_Down: {
|
||||||
|
int newRow;
|
||||||
|
int page = lPtr->fullFitLines > 0 ? lPtr->fullFitLines : 1;
|
||||||
|
int itemCount = WMGetArrayItemCount(lPtr->items);
|
||||||
|
int cur = WMGetListSelectedItemRow(lPtr);
|
||||||
|
|
||||||
|
if (cur == WLNotFound)
|
||||||
|
cur = lPtr->topItem;
|
||||||
|
newRow = cur + page;
|
||||||
|
if (newRow >= itemCount)
|
||||||
|
newRow = itemCount - 1;
|
||||||
|
|
||||||
|
if (newRow != cur && itemCount > 0) {
|
||||||
|
if (lPtr->flags.allowMultipleSelection) {
|
||||||
|
if (event->xkey.state & ShiftMask) {
|
||||||
|
WMRange range;
|
||||||
|
int anchor = WMGetListSelectedItemRow(lPtr);
|
||||||
|
if (anchor == WLNotFound || WMGetArrayItemCount(lPtr->selectedItems) == 0) {
|
||||||
|
anchor = cur;
|
||||||
|
}
|
||||||
|
|
||||||
|
range.position = anchor;
|
||||||
|
if (newRow >= anchor)
|
||||||
|
range.count = newRow - anchor + 1;
|
||||||
|
else
|
||||||
|
range.count = newRow - anchor - 1;
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
} else {
|
||||||
|
WMRange range = { .position = newRow, .count = 1 };
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
lastClicked = newRow;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
WMSelectListItem(lPtr, newRow);
|
||||||
|
lastClicked = newRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ensure visibility */
|
||||||
|
if (newRow > (lPtr->topItem + lPtr->fullFitLines - 1)) {
|
||||||
|
lPtr->topItem = newRow - lPtr->fullFitLines + 1;
|
||||||
|
if (lPtr->topItem < 0)
|
||||||
|
lPtr->topItem = 0;
|
||||||
|
/* Ensure we don't scroll past the end */
|
||||||
|
if (lPtr->topItem + lPtr->fullFitLines > itemCount)
|
||||||
|
lPtr->topItem = itemCount - lPtr->fullFitLines;
|
||||||
|
if (lPtr->topItem < 0)
|
||||||
|
lPtr->topItem = 0;
|
||||||
|
if (lPtr->view->flags.realized)
|
||||||
|
updateScroller(lPtr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Trigger action callback */
|
||||||
|
if (lPtr->action)
|
||||||
|
(*lPtr->action) (lPtr, lPtr->clientData);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case XK_Home: {
|
||||||
|
int itemCount = WMGetArrayItemCount(lPtr->items);
|
||||||
|
if (itemCount > 0) {
|
||||||
|
int newRow = 0;
|
||||||
|
if (lPtr->flags.allowMultipleSelection) {
|
||||||
|
if (event->xkey.state & ShiftMask) {
|
||||||
|
WMRange range;
|
||||||
|
int anchor = WMGetListSelectedItemRow(lPtr);
|
||||||
|
if (anchor == WLNotFound || WMGetArrayItemCount(lPtr->selectedItems) == 0) {
|
||||||
|
anchor = lPtr->topItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
range.position = anchor;
|
||||||
|
if (newRow >= anchor)
|
||||||
|
range.count = newRow - anchor + 1;
|
||||||
|
else
|
||||||
|
range.count = newRow - anchor - 1;
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
} else {
|
||||||
|
WMRange range = { .position = newRow, .count = 1 };
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
lastClicked = newRow;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
WMSelectListItem(lPtr, newRow);
|
||||||
|
lastClicked = newRow;
|
||||||
|
}
|
||||||
|
if (newRow < lPtr->topItem) {
|
||||||
|
lPtr->topItem = newRow;
|
||||||
|
if (lPtr->view->flags.realized)
|
||||||
|
updateScroller(lPtr);
|
||||||
|
}
|
||||||
|
/* Trigger action callback */
|
||||||
|
if (lPtr->action)
|
||||||
|
(*lPtr->action) (lPtr, lPtr->clientData);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case XK_End: {
|
||||||
|
int itemCount = WMGetArrayItemCount(lPtr->items);
|
||||||
|
if (itemCount > 0) {
|
||||||
|
int newRow = itemCount - 1;
|
||||||
|
if (lPtr->flags.allowMultipleSelection) {
|
||||||
|
if (event->xkey.state & ShiftMask) {
|
||||||
|
WMRange range;
|
||||||
|
int anchor = WMGetListSelectedItemRow(lPtr);
|
||||||
|
if (anchor == WLNotFound || WMGetArrayItemCount(lPtr->selectedItems) == 0) {
|
||||||
|
anchor = lPtr->topItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
range.position = anchor;
|
||||||
|
if (newRow >= anchor)
|
||||||
|
range.count = newRow - anchor + 1;
|
||||||
|
else
|
||||||
|
range.count = newRow - anchor - 1;
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
} else {
|
||||||
|
WMRange range = { .position = newRow, .count = 1 };
|
||||||
|
WMSetListSelectionToRange(lPtr, range);
|
||||||
|
lastClicked = newRow;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
WMSelectListItem(lPtr, newRow);
|
||||||
|
lastClicked = newRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ensure the last item is fully visible */
|
||||||
|
lPtr->topItem = itemCount - lPtr->fullFitLines;
|
||||||
|
if (lPtr->topItem < 0)
|
||||||
|
lPtr->topItem = 0;
|
||||||
|
if (lPtr->view->flags.realized)
|
||||||
|
updateScroller(lPtr);
|
||||||
|
|
||||||
|
/* Trigger action callback */
|
||||||
|
if (lPtr->action)
|
||||||
|
(*lPtr->action) (lPtr, lPtr->clientData);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If we handled a navigation keysym, avoid falling through to typeahead logic */
|
||||||
|
if (ksym == XK_Up || ksym == XK_Down || ksym == XK_Page_Up || ksym == XK_Page_Down || ksym == XK_Home || ksym == XK_End)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (len <= 0)
|
||||||
|
break;
|
||||||
|
|
||||||
|
buffer[len] = '\0';
|
||||||
|
|
||||||
|
if (ksym == XK_Escape) {
|
||||||
|
if (lPtr->typeaheadID) {
|
||||||
|
WMDeleteTimerHandler(lPtr->typeaheadID);
|
||||||
|
lPtr->typeaheadID = NULL;
|
||||||
|
}
|
||||||
|
if (lPtr->typeahead) {
|
||||||
|
lPtr->typeahead[0] = '\0';
|
||||||
|
lPtr->typeaheadLen = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ksym == XK_BackSpace) {
|
||||||
|
if (lPtr->typeaheadLen > 0 && lPtr->typeahead) {
|
||||||
|
lPtr->typeaheadLen--;
|
||||||
|
lPtr->typeahead[lPtr->typeaheadLen] = '\0';
|
||||||
|
}
|
||||||
|
} else if (len == 1 && isalnum((unsigned char)buffer[0])) {
|
||||||
|
if (!lPtr->typeahead) {
|
||||||
|
lPtr->typeahead = wmalloc(2);
|
||||||
|
lPtr->typeaheadLen = 0;
|
||||||
|
}
|
||||||
|
lPtr->typeahead = wrealloc(lPtr->typeahead, lPtr->typeaheadLen + 2);
|
||||||
|
lPtr->typeahead[lPtr->typeaheadLen] = buffer[0];
|
||||||
|
lPtr->typeaheadLen++;
|
||||||
|
lPtr->typeahead[lPtr->typeaheadLen] = '\0';
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lPtr->typeaheadLen > 0)
|
||||||
|
jumpToFirstItemWithPrefix(lPtr, lPtr->typeahead, lPtr->typeaheadLen);
|
||||||
|
|
||||||
|
if (lPtr->typeaheadID) {
|
||||||
|
WMDeleteTimerHandler(lPtr->typeaheadID);
|
||||||
|
lPtr->typeaheadID = NULL;
|
||||||
|
}
|
||||||
|
if (lPtr->typeaheadLen > 0)
|
||||||
|
lPtr->typeaheadID = WMAddTimerHandler(TYPEAHEAD_CLEAR_DELAY, typeaheadTimeout, lPtr);
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
if (lPtr->topItem != topItem)
|
if (lPtr->topItem != topItem)
|
||||||
WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL);
|
WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL);
|
||||||
@@ -1123,6 +1605,10 @@ static void destroyList(List * lPtr)
|
|||||||
WMDeleteTimerHandler(lPtr->selectID);
|
WMDeleteTimerHandler(lPtr->selectID);
|
||||||
lPtr->selectID = NULL;
|
lPtr->selectID = NULL;
|
||||||
|
|
||||||
|
if (lPtr->typeaheadID)
|
||||||
|
WMDeleteTimerHandler(lPtr->typeaheadID);
|
||||||
|
lPtr->typeaheadID = NULL;
|
||||||
|
|
||||||
if (lPtr->selectedItems)
|
if (lPtr->selectedItems)
|
||||||
WMFreeArray(lPtr->selectedItems);
|
WMFreeArray(lPtr->selectedItems);
|
||||||
|
|
||||||
@@ -1132,6 +1618,9 @@ static void destroyList(List * lPtr)
|
|||||||
if (lPtr->doubleBuffer)
|
if (lPtr->doubleBuffer)
|
||||||
XFreePixmap(lPtr->view->screen->display, lPtr->doubleBuffer);
|
XFreePixmap(lPtr->view->screen->display, lPtr->doubleBuffer);
|
||||||
|
|
||||||
|
if (lPtr->typeahead)
|
||||||
|
wfree(lPtr->typeahead);
|
||||||
|
|
||||||
WMRemoveNotificationObserver(lPtr);
|
WMRemoveNotificationObserver(lPtr);
|
||||||
|
|
||||||
wfree(lPtr);
|
wfree(lPtr);
|
||||||
|
|||||||
@@ -252,6 +252,56 @@ WMMenuItem *WMGetPopUpButtonMenuItem(WMPopUpButton * bPtr, int index)
|
|||||||
return WMGetFromArray(bPtr->items, index);
|
return WMGetFromArray(bPtr->items, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int WMSelectPopUpButtonPreviousItem(WMPopUpButton * bPtr)
|
||||||
|
{
|
||||||
|
int testIndex;
|
||||||
|
|
||||||
|
CHECK_CLASS(bPtr, WC_PopUpButton);
|
||||||
|
|
||||||
|
if (bPtr->flags.pullsDown || bPtr->selectedItemIndex < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
testIndex = bPtr->selectedItemIndex - 1;
|
||||||
|
|
||||||
|
while (testIndex >= 0 && !WMGetPopUpButtonItemEnabled(bPtr, testIndex))
|
||||||
|
testIndex--;
|
||||||
|
|
||||||
|
if (testIndex != -1) {
|
||||||
|
WMSetPopUpButtonSelectedItem(bPtr, testIndex);
|
||||||
|
if (bPtr->action)
|
||||||
|
(*bPtr->action) (bPtr, bPtr->clientData);
|
||||||
|
return testIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int WMSelectPopUpButtonNextItem(WMPopUpButton * bPtr)
|
||||||
|
{
|
||||||
|
int itemCount;
|
||||||
|
int testIndex;
|
||||||
|
|
||||||
|
CHECK_CLASS(bPtr, WC_PopUpButton);
|
||||||
|
|
||||||
|
if (bPtr->flags.pullsDown || bPtr->selectedItemIndex < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
itemCount = WMGetArrayItemCount(bPtr->items);
|
||||||
|
testIndex = bPtr->selectedItemIndex + 1;
|
||||||
|
|
||||||
|
while (testIndex < itemCount && !WMGetPopUpButtonItemEnabled(bPtr, testIndex))
|
||||||
|
testIndex++;
|
||||||
|
|
||||||
|
if (testIndex != itemCount) {
|
||||||
|
WMSetPopUpButtonSelectedItem(bPtr, testIndex);
|
||||||
|
if (bPtr->action)
|
||||||
|
(*bPtr->action) (bPtr, bPtr->clientData);
|
||||||
|
return testIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
static void paintPopUpButton(PopUpButton * bPtr)
|
static void paintPopUpButton(PopUpButton * bPtr)
|
||||||
{
|
{
|
||||||
W_Screen *scr = bPtr->view->screen;
|
W_Screen *scr = bPtr->view->screen;
|
||||||
|
|||||||
@@ -219,9 +219,9 @@ static char *default_bullet[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* These id are used when sharing the selected text between applications */
|
/* These id are used when sharing the selected text between applications */
|
||||||
static Atom XA_Targets = None;
|
static Atom XA_TARGETS = None;
|
||||||
static Atom XA_Format_Text = None;
|
static Atom XA_TEXT = None;
|
||||||
static Atom XA_Format_Compound_Text = None;
|
static Atom XA_COMPOUND_TEXT = None;
|
||||||
|
|
||||||
static void handleEvents(XEvent * event, void *data);
|
static void handleEvents(XEvent * event, void *data);
|
||||||
static void layOutDocument(Text * tPtr);
|
static void layOutDocument(Text * tPtr);
|
||||||
@@ -2050,7 +2050,7 @@ static WMData *requestHandler(WMView * view, Atom selection, Atom target, void *
|
|||||||
(void) selection;
|
(void) selection;
|
||||||
(void) cdata;
|
(void) cdata;
|
||||||
|
|
||||||
if (target == XA_STRING || target == XA_Format_Text || target == XA_Format_Compound_Text) {
|
if (target == XA_STRING || target == XA_TEXT || target == XA_COMPOUND_TEXT) {
|
||||||
char *text = WMGetTextSelectedStream(tPtr);
|
char *text = WMGetTextSelectedStream(tPtr);
|
||||||
|
|
||||||
if (text) {
|
if (text) {
|
||||||
@@ -2063,18 +2063,18 @@ static WMData *requestHandler(WMView * view, Atom selection, Atom target, void *
|
|||||||
} else
|
} else
|
||||||
printf("didn't get it\n");
|
printf("didn't get it\n");
|
||||||
|
|
||||||
if (target == XA_Targets) {
|
if (target == XA_TARGETS) {
|
||||||
Atom array[4];
|
Atom supported_type[4];
|
||||||
|
|
||||||
array[0] = XA_Targets;
|
supported_type[0] = XA_TARGETS;
|
||||||
array[1] = XA_STRING;
|
supported_type[1] = XA_STRING;
|
||||||
array[2] = XA_Format_Text;
|
supported_type[2] = XA_TEXT;
|
||||||
array[3] = XA_Format_Compound_Text;
|
supported_type[3] = XA_COMPOUND_TEXT;
|
||||||
|
|
||||||
data = WMCreateDataWithBytes(&array, sizeof(array));
|
data = WMCreateDataWithBytes(supported_type, sizeof(supported_type));
|
||||||
WMSetDataFormat(data, 32);
|
WMSetDataFormat(data, 32);
|
||||||
|
|
||||||
*type = target;
|
*type = XA_ATOM;
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2977,15 +2977,15 @@ WMText *WMCreateTextForDocumentType(WMWidget * parent, WMAction * parser, WMActi
|
|||||||
dpy = tPtr->view->screen->display;
|
dpy = tPtr->view->screen->display;
|
||||||
scr = tPtr->view->screen;
|
scr = tPtr->view->screen;
|
||||||
|
|
||||||
if (XA_Targets == None) {
|
if (XA_TARGETS == None) {
|
||||||
/*
|
/*
|
||||||
* Because the X protocol guaranties that the value will never change in
|
* Because the X protocol guaranties that the value will never change in
|
||||||
* the lifespan of the server, we query the values only the first time a
|
* the lifespan of the server, we query the values only the first time a
|
||||||
* widget is created
|
* widget is created
|
||||||
*/
|
*/
|
||||||
XA_Targets = XInternAtom(dpy, "TARGETS", False);
|
XA_TARGETS = XInternAtom(dpy, "TARGETS", False);
|
||||||
XA_Format_Text = XInternAtom(dpy, "TEXT", False);
|
XA_TEXT = XInternAtom(dpy, "TEXT", False);
|
||||||
XA_Format_Compound_Text = XInternAtom(dpy, "COMPOUND_TEXT", False);
|
XA_COMPOUND_TEXT = XInternAtom(dpy, "COMPOUND_TEXT", False);
|
||||||
}
|
}
|
||||||
|
|
||||||
tPtr->view->self = tPtr;
|
tPtr->view->self = tPtr;
|
||||||
|
|||||||
@@ -239,9 +239,9 @@ static WMData *requestHandler(WMView * view, Atom selection, Atom target, void *
|
|||||||
TextField *tPtr = view->self;
|
TextField *tPtr = view->self;
|
||||||
int count;
|
int count;
|
||||||
Display *dpy = tPtr->view->screen->display;
|
Display *dpy = tPtr->view->screen->display;
|
||||||
Atom _TARGETS;
|
Atom XA_TARGETS;
|
||||||
Atom TEXT = XInternAtom(dpy, "TEXT", False);
|
Atom XA_TEXT = XInternAtom(dpy, "TEXT", False);
|
||||||
Atom COMPOUND_TEXT = XInternAtom(dpy, "COMPOUND_TEXT", False);
|
Atom XA_COMPOUND_TEXT = XInternAtom(dpy, "COMPOUND_TEXT", False);
|
||||||
WMData *data;
|
WMData *data;
|
||||||
|
|
||||||
/* Parameter not used, but tell the compiler that it is ok */
|
/* Parameter not used, but tell the compiler that it is ok */
|
||||||
@@ -251,7 +251,7 @@ static WMData *requestHandler(WMView * view, Atom selection, Atom target, void *
|
|||||||
count = tPtr->selection.count < 0
|
count = tPtr->selection.count < 0
|
||||||
? tPtr->selection.position + tPtr->selection.count : tPtr->selection.position;
|
? tPtr->selection.position + tPtr->selection.count : tPtr->selection.position;
|
||||||
|
|
||||||
if (target == XA_STRING || target == TEXT || target == COMPOUND_TEXT) {
|
if (target == XA_STRING || target == XA_TEXT || target == XA_COMPOUND_TEXT) {
|
||||||
|
|
||||||
data = WMCreateDataWithBytes(&(tPtr->text[count]), abs(tPtr->selection.count));
|
data = WMCreateDataWithBytes(&(tPtr->text[count]), abs(tPtr->selection.count));
|
||||||
WMSetDataFormat(data, 8);
|
WMSetDataFormat(data, 8);
|
||||||
@@ -260,19 +260,19 @@ static WMData *requestHandler(WMView * view, Atom selection, Atom target, void *
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
_TARGETS = XInternAtom(dpy, "TARGETS", False);
|
XA_TARGETS = XInternAtom(dpy, "TARGETS", False);
|
||||||
if (target == _TARGETS) {
|
if (target == XA_TARGETS) {
|
||||||
Atom supported_type[4];
|
Atom supported_type[4];
|
||||||
|
|
||||||
supported_type[0] = _TARGETS;
|
supported_type[0] = XA_TARGETS;
|
||||||
supported_type[1] = XA_STRING;
|
supported_type[1] = XA_STRING;
|
||||||
supported_type[2] = TEXT;
|
supported_type[2] = XA_TEXT;
|
||||||
supported_type[3] = COMPOUND_TEXT;
|
supported_type[3] = XA_COMPOUND_TEXT;
|
||||||
|
|
||||||
data = WMCreateDataWithBytes(supported_type, sizeof(supported_type));
|
data = WMCreateDataWithBytes(supported_type, sizeof(supported_type));
|
||||||
WMSetDataFormat(data, 32);
|
WMSetDataFormat(data, 32);
|
||||||
|
|
||||||
*type = target;
|
*type = XA_ATOM;
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -446,6 +446,13 @@ void WMDeleteTextFieldRange(WMTextField * tPtr, WMRange range)
|
|||||||
|
|
||||||
decrToFit(tPtr);
|
decrToFit(tPtr);
|
||||||
|
|
||||||
|
/* Ensure cursor is visible after deletion */
|
||||||
|
if (tPtr->cursorPosition < tPtr->viewPosition) {
|
||||||
|
tPtr->viewPosition = tPtr->cursorPosition;
|
||||||
|
} else {
|
||||||
|
incrToFit2(tPtr);
|
||||||
|
}
|
||||||
|
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -490,11 +497,6 @@ void WMSetTextFieldAlignment(WMTextField * tPtr, WMAlignment alignment)
|
|||||||
|
|
||||||
tPtr->flags.alignment = alignment;
|
tPtr->flags.alignment = alignment;
|
||||||
|
|
||||||
if (alignment != WALeft) {
|
|
||||||
wwarning(_("only left alignment is supported in textfields"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tPtr->view->flags.realized) {
|
if (tPtr->view->flags.realized) {
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
}
|
}
|
||||||
@@ -846,8 +848,8 @@ static void paintTextField(TextField * tPtr)
|
|||||||
count = tPtr->viewPosition;
|
count = tPtr->viewPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
rx = tPtr->offsetWidth + 1 + WMWidthOfString(tPtr->font, text, count)
|
rx = tx + WMWidthOfString(tPtr->font, &(text[tPtr->viewPosition]),
|
||||||
- WMWidthOfString(tPtr->font, text, tPtr->viewPosition);
|
count - tPtr->viewPosition);
|
||||||
|
|
||||||
WMDrawImageString(screen, drawbuffer, color, screen->gray,
|
WMDrawImageString(screen, drawbuffer, color, screen->gray,
|
||||||
tPtr->font, rx, ty, &(text[count]), count2);
|
tPtr->font, rx, ty, &(text[count]), count2);
|
||||||
@@ -1029,7 +1031,6 @@ static void handleTextFieldKeyPress(TextField * tPtr, XEvent * event)
|
|||||||
case XK_Left:
|
case XK_Left:
|
||||||
if (tPtr->cursorPosition > 0) {
|
if (tPtr->cursorPosition > 0) {
|
||||||
int i;
|
int i;
|
||||||
paintCursor(tPtr);
|
|
||||||
|
|
||||||
i = tPtr->cursorPosition;
|
i = tPtr->cursorPosition;
|
||||||
i += oneUTF8CharBackward(&tPtr->text[i], i);
|
i += oneUTF8CharBackward(&tPtr->text[i], i);
|
||||||
@@ -1045,9 +1046,8 @@ static void handleTextFieldKeyPress(TextField * tPtr, XEvent * event)
|
|||||||
|
|
||||||
if (tPtr->cursorPosition < tPtr->viewPosition) {
|
if (tPtr->cursorPosition < tPtr->viewPosition) {
|
||||||
tPtr->viewPosition = tPtr->cursorPosition;
|
tPtr->viewPosition = tPtr->cursorPosition;
|
||||||
refresh = 1;
|
}
|
||||||
} else
|
refresh = 1;
|
||||||
paintCursor(tPtr);
|
|
||||||
}
|
}
|
||||||
if (shifted)
|
if (shifted)
|
||||||
cancelSelection = 0;
|
cancelSelection = 0;
|
||||||
@@ -1070,7 +1070,6 @@ static void handleTextFieldKeyPress(TextField * tPtr, XEvent * event)
|
|||||||
case XK_Right:
|
case XK_Right:
|
||||||
if (tPtr->cursorPosition < tPtr->textLen) {
|
if (tPtr->cursorPosition < tPtr->textLen) {
|
||||||
int i;
|
int i;
|
||||||
paintCursor(tPtr);
|
|
||||||
|
|
||||||
i = tPtr->cursorPosition;
|
i = tPtr->cursorPosition;
|
||||||
if (controled) {
|
if (controled) {
|
||||||
@@ -1083,10 +1082,8 @@ static void handleTextFieldKeyPress(TextField * tPtr, XEvent * event)
|
|||||||
}
|
}
|
||||||
tPtr->cursorPosition = i;
|
tPtr->cursorPosition = i;
|
||||||
|
|
||||||
refresh = incrToFit2(tPtr);
|
incrToFit2(tPtr);
|
||||||
|
refresh = 1;
|
||||||
if (!refresh)
|
|
||||||
paintCursor(tPtr);
|
|
||||||
}
|
}
|
||||||
if (shifted)
|
if (shifted)
|
||||||
cancelSelection = 0;
|
cancelSelection = 0;
|
||||||
@@ -1109,13 +1106,11 @@ static void handleTextFieldKeyPress(TextField * tPtr, XEvent * event)
|
|||||||
case XK_Home:
|
case XK_Home:
|
||||||
if (!controled) {
|
if (!controled) {
|
||||||
if (tPtr->cursorPosition > 0) {
|
if (tPtr->cursorPosition > 0) {
|
||||||
paintCursor(tPtr);
|
|
||||||
tPtr->cursorPosition = 0;
|
tPtr->cursorPosition = 0;
|
||||||
if (tPtr->viewPosition > 0) {
|
if (tPtr->viewPosition > 0) {
|
||||||
tPtr->viewPosition = 0;
|
tPtr->viewPosition = 0;
|
||||||
refresh = 1;
|
}
|
||||||
} else
|
refresh = 1;
|
||||||
paintCursor(tPtr);
|
|
||||||
}
|
}
|
||||||
if (shifted)
|
if (shifted)
|
||||||
cancelSelection = 0;
|
cancelSelection = 0;
|
||||||
@@ -1138,14 +1133,11 @@ static void handleTextFieldKeyPress(TextField * tPtr, XEvent * event)
|
|||||||
case XK_End:
|
case XK_End:
|
||||||
if (!controled) {
|
if (!controled) {
|
||||||
if (tPtr->cursorPosition < tPtr->textLen) {
|
if (tPtr->cursorPosition < tPtr->textLen) {
|
||||||
paintCursor(tPtr);
|
|
||||||
tPtr->cursorPosition = tPtr->textLen;
|
tPtr->cursorPosition = tPtr->textLen;
|
||||||
tPtr->viewPosition = 0;
|
tPtr->viewPosition = 0;
|
||||||
|
|
||||||
refresh = incrToFit(tPtr);
|
incrToFit(tPtr);
|
||||||
|
refresh = 1;
|
||||||
if (!refresh)
|
|
||||||
paintCursor(tPtr);
|
|
||||||
}
|
}
|
||||||
if (shifted)
|
if (shifted)
|
||||||
cancelSelection = 0;
|
cancelSelection = 0;
|
||||||
@@ -1408,7 +1400,25 @@ static void handleTextFieldActionEvents(XEvent * event, void *data)
|
|||||||
tPtr->viewPosition);
|
tPtr->viewPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
tPtr->cursorPosition = pointToCursorPosition(tPtr, event->xmotion.x);
|
if (tPtr->flags.alignment == WARight) {
|
||||||
|
int textWidth = WMWidthOfString(tPtr->font, tPtr->text, tPtr->textLen);
|
||||||
|
if (textWidth < tPtr->usableWidth) {
|
||||||
|
tPtr->cursorPosition = pointToCursorPosition(tPtr,
|
||||||
|
event->xmotion.x - tPtr->usableWidth + textWidth);
|
||||||
|
} else {
|
||||||
|
tPtr->cursorPosition = pointToCursorPosition(tPtr, event->xmotion.x);
|
||||||
|
}
|
||||||
|
} else if (tPtr->flags.alignment == WACenter) {
|
||||||
|
int textWidth = WMWidthOfString(tPtr->font, tPtr->text, tPtr->textLen);
|
||||||
|
if (textWidth < tPtr->usableWidth) {
|
||||||
|
tPtr->cursorPosition = pointToCursorPosition(tPtr,
|
||||||
|
event->xmotion.x - (tPtr->usableWidth - textWidth) / 2);
|
||||||
|
} else {
|
||||||
|
tPtr->cursorPosition = pointToCursorPosition(tPtr, event->xmotion.x);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tPtr->cursorPosition = pointToCursorPosition(tPtr, event->xmotion.x);
|
||||||
|
}
|
||||||
|
|
||||||
/* Do not allow text selection in secure textfields */
|
/* Do not allow text selection in secure textfields */
|
||||||
if (tPtr->flags.secure) {
|
if (tPtr->flags.secure) {
|
||||||
@@ -1441,17 +1451,35 @@ static void handleTextFieldActionEvents(XEvent * event, void *data)
|
|||||||
if (tPtr->flags.enabled && !tPtr->flags.focused) {
|
if (tPtr->flags.enabled && !tPtr->flags.focused) {
|
||||||
WMSetFocusToWidget(tPtr);
|
WMSetFocusToWidget(tPtr);
|
||||||
}
|
}
|
||||||
|
if (textWidth < tPtr->usableWidth) {
|
||||||
|
tPtr->cursorPosition = pointToCursorPosition(tPtr,
|
||||||
|
event->xbutton.x - tPtr->usableWidth
|
||||||
|
+ textWidth);
|
||||||
|
} else
|
||||||
|
tPtr->cursorPosition = pointToCursorPosition(tPtr, event->xbutton.x);
|
||||||
|
|
||||||
if (tPtr->flags.focused) {
|
if (tPtr->flags.focused) {
|
||||||
tPtr->selection.position = tPtr->cursorPosition;
|
tPtr->selection.position = tPtr->cursorPosition;
|
||||||
tPtr->selection.count = 0;
|
tPtr->selection.count = 0;
|
||||||
}
|
}
|
||||||
|
paintTextField(tPtr);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WACenter:
|
||||||
|
textWidth = WMWidthOfString(tPtr->font, tPtr->text, tPtr->textLen);
|
||||||
|
if (tPtr->flags.enabled && !tPtr->flags.focused) {
|
||||||
|
WMSetFocusToWidget(tPtr);
|
||||||
|
}
|
||||||
if (textWidth < tPtr->usableWidth) {
|
if (textWidth < tPtr->usableWidth) {
|
||||||
tPtr->cursorPosition = pointToCursorPosition(tPtr,
|
tPtr->cursorPosition = pointToCursorPosition(tPtr,
|
||||||
event->xbutton.x - tPtr->usableWidth
|
event->xbutton.x - (tPtr->usableWidth - textWidth) / 2);
|
||||||
+ textWidth);
|
} else {
|
||||||
} else
|
|
||||||
tPtr->cursorPosition = pointToCursorPosition(tPtr, event->xbutton.x);
|
tPtr->cursorPosition = pointToCursorPosition(tPtr, event->xbutton.x);
|
||||||
|
}
|
||||||
|
if (tPtr->flags.focused) {
|
||||||
|
tPtr->selection.position = tPtr->cursorPosition;
|
||||||
|
tPtr->selection.count = 0;
|
||||||
|
}
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1465,29 +1493,31 @@ static void handleTextFieldActionEvents(XEvent * event, void *data)
|
|||||||
tPtr->selection.count = 0;
|
tPtr->selection.count = 0;
|
||||||
paintTextField(tPtr);
|
paintTextField(tPtr);
|
||||||
}
|
}
|
||||||
if (event->xbutton.button == Button2 && tPtr->flags.enabled) {
|
|
||||||
char *text;
|
|
||||||
int n;
|
|
||||||
|
|
||||||
if (!WMRequestSelection(tPtr->view, XA_PRIMARY, XA_STRING,
|
|
||||||
event->xbutton.time, pasteText, NULL)) {
|
|
||||||
text = XFetchBuffer(tPtr->view->screen->display, &n, 0);
|
|
||||||
|
|
||||||
if (text) {
|
|
||||||
text[n] = 0;
|
|
||||||
WMInsertTextFieldText(tPtr, text, tPtr->cursorPosition);
|
|
||||||
XFree(text);
|
|
||||||
NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
|
|
||||||
(void *)WMInsertTextEvent);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
tPtr->flags.waitingSelection = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event->xbutton.button == Button2 && tPtr->flags.enabled) {
|
||||||
|
char *text;
|
||||||
|
int n;
|
||||||
|
|
||||||
|
if (!WMRequestSelection(tPtr->view, XA_PRIMARY, XA_STRING,
|
||||||
|
event->xbutton.time, pasteText, NULL)) {
|
||||||
|
text = XFetchBuffer(tPtr->view->screen->display, &n, 0);
|
||||||
|
|
||||||
|
if (text) {
|
||||||
|
text[n] = 0;
|
||||||
|
WMInsertTextFieldText(tPtr, text, tPtr->cursorPosition);
|
||||||
|
XFree(text);
|
||||||
|
NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
|
||||||
|
(void *)WMInsertTextEvent);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tPtr->flags.waitingSelection = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ButtonRelease:
|
case ButtonRelease:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2014-2023 Window Maker Team
|
* Copyright (c) 2014-2023 Window Maker Team
|
||||||
* Copyright (c) 1998-2003 Alfredo K. Kojima
|
* Copyright (c) 1998-2003 Alfredo K. Kojima
|
||||||
* Copyright (c) 2009-2023 Window Maker Team
|
* Copyright (c) 2009-2026 Window Maker Team
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -72,9 +72,15 @@ static struct expert_option {
|
|||||||
{ N_("Cycle windows only on the active head."),
|
{ N_("Cycle windows only on the active head."),
|
||||||
/* default: */ False, OPTION_WMAKER, "CycleActiveHeadOnly" },
|
/* default: */ False, OPTION_WMAKER, "CycleActiveHeadOnly" },
|
||||||
|
|
||||||
|
{ N_("Cycle all windows from all workspaces."),
|
||||||
|
/* default: */ False, OPTION_WMAKER, "CycleAllWorkspaces" },
|
||||||
|
|
||||||
{ N_("Ignore minimized windows when cycling."),
|
{ N_("Ignore minimized windows when cycling."),
|
||||||
/* default: */ False, OPTION_WMAKER, "CycleIgnoreMinimized" },
|
/* default: */ False, OPTION_WMAKER, "CycleIgnoreMinimized" },
|
||||||
|
|
||||||
|
{ N_("Show app icons in window list."),
|
||||||
|
/* default: */ False, OPTION_WMAKER, "WindowListAppIcons" },
|
||||||
|
|
||||||
{ N_("Show switch panel when cycling windows."),
|
{ N_("Show switch panel when cycling windows."),
|
||||||
/* default: */ True, OPTION_WMAKER_ARRAY, "SwitchPanelImages" },
|
/* default: */ True, OPTION_WMAKER_ARRAY, "SwitchPanelImages" },
|
||||||
|
|
||||||
@@ -124,6 +130,8 @@ static struct expert_option {
|
|||||||
{ N_("Keep dock on primary head."),
|
{ N_("Keep dock on primary head."),
|
||||||
/* default: */ False, OPTION_WMAKER, "KeepDockOnPrimaryHead"},
|
/* default: */ False, OPTION_WMAKER, "KeepDockOnPrimaryHead"},
|
||||||
|
|
||||||
|
{ N_("Allow windows to take focus using mouse wheel."),
|
||||||
|
/* default: */ False, OPTION_WMAKER, "MouseWheelFocus"},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -141,6 +149,8 @@ typedef struct _Panel {
|
|||||||
WMButton *swi[wlengthof_nocheck(expert_options)];
|
WMButton *swi[wlengthof_nocheck(expert_options)];
|
||||||
|
|
||||||
WMTextField *textfield[wlengthof_nocheck(expert_options)];
|
WMTextField *textfield[wlengthof_nocheck(expert_options)];
|
||||||
|
WMScrollView *sv;
|
||||||
|
WMWidget *frame;
|
||||||
|
|
||||||
} _Panel;
|
} _Panel;
|
||||||
|
|
||||||
@@ -161,6 +171,124 @@ static void changeIntTextfield(void *data, int delta)
|
|||||||
WMSetTextFieldText(textfield, buffer);
|
WMSetTextFieldText(textfield, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void scrollViewWheelHandler(XEvent *event, void *data)
|
||||||
|
{
|
||||||
|
_Panel *panel = (_Panel *) data;
|
||||||
|
int amount, viewH, contentH, newY, maxY;
|
||||||
|
WMRect rect;
|
||||||
|
WMPoint pt;
|
||||||
|
|
||||||
|
if (!panel || !panel->sv || !panel->frame)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (event->type != ButtonPress)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (event->xbutton.button != WINGsConfiguration.mouseWheelUp &&
|
||||||
|
event->xbutton.button != WINGsConfiguration.mouseWheelDown)
|
||||||
|
return;
|
||||||
|
|
||||||
|
rect = WMGetScrollViewVisibleRect(panel->sv);
|
||||||
|
viewH = rect.size.height;
|
||||||
|
contentH = WMWidgetHeight(panel->frame);
|
||||||
|
|
||||||
|
if (event->xbutton.state & ControlMask) {
|
||||||
|
amount = viewH; /* page */
|
||||||
|
} else if (event->xbutton.state & ShiftMask) {
|
||||||
|
amount = 1; /* line */
|
||||||
|
} else {
|
||||||
|
amount = viewH / 3; /* default */
|
||||||
|
if (amount == 0)
|
||||||
|
amount = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event->xbutton.button == WINGsConfiguration.mouseWheelUp)
|
||||||
|
amount = -amount;
|
||||||
|
|
||||||
|
newY = rect.pos.y + amount;
|
||||||
|
maxY = contentH - viewH;
|
||||||
|
if (maxY < 0)
|
||||||
|
maxY = 0;
|
||||||
|
if (newY < 0)
|
||||||
|
newY = 0;
|
||||||
|
if (newY > maxY)
|
||||||
|
newY = maxY;
|
||||||
|
|
||||||
|
pt.x = rect.pos.x;
|
||||||
|
pt.y = newY;
|
||||||
|
|
||||||
|
WMScrollViewScrollPoint(panel->sv, pt);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void scrollViewRealizeObserver(void *self, WMNotification *not)
|
||||||
|
{
|
||||||
|
(void) not;
|
||||||
|
_Panel *panel = (_Panel *) self;
|
||||||
|
Display *dpy = NULL;
|
||||||
|
Window viewport_win = 0;
|
||||||
|
WMView *frameView;
|
||||||
|
|
||||||
|
if (!panel || !panel->frame)
|
||||||
|
return;
|
||||||
|
|
||||||
|
frameView = WMWidgetView(panel->frame);
|
||||||
|
|
||||||
|
if (frameView && frameView->parent) {
|
||||||
|
dpy = frameView->screen->display;
|
||||||
|
viewport_win = frameView->parent->window;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* fallback: use the scrollview's view window if parent viewport not available */
|
||||||
|
if (!viewport_win && panel->sv) {
|
||||||
|
WMView *svView = WMWidgetView(panel->sv);
|
||||||
|
if (svView && svView->screen) {
|
||||||
|
dpy = svView->screen->display;
|
||||||
|
viewport_win = svView->window;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!dpy || viewport_win == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
XGrabButton(dpy, WINGsConfiguration.mouseWheelUp, AnyModifier, viewport_win,
|
||||||
|
True, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None);
|
||||||
|
XGrabButton(dpy, WINGsConfiguration.mouseWheelDown, AnyModifier, viewport_win,
|
||||||
|
True, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void scrollViewPrepareForClose(Panel *p)
|
||||||
|
{
|
||||||
|
_Panel *panel = (_Panel *) p;
|
||||||
|
Display *dpy = NULL;
|
||||||
|
Window viewport_win = 0;
|
||||||
|
|
||||||
|
if (!panel)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (panel->frame) {
|
||||||
|
WMView *frameView = WMWidgetView(panel->frame);
|
||||||
|
if (frameView && frameView->parent) {
|
||||||
|
dpy = frameView->screen->display;
|
||||||
|
viewport_win = frameView->parent->window;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!viewport_win && panel->sv) {
|
||||||
|
WMView *svView = WMWidgetView(panel->sv);
|
||||||
|
if (svView && svView->screen) {
|
||||||
|
dpy = svView->screen->display;
|
||||||
|
viewport_win = svView->window;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dpy && viewport_win != 0) {
|
||||||
|
XUngrabButton(dpy, WINGsConfiguration.mouseWheelUp, AnyModifier, viewport_win);
|
||||||
|
XUngrabButton(dpy, WINGsConfiguration.mouseWheelDown, AnyModifier, viewport_win);
|
||||||
|
}
|
||||||
|
|
||||||
|
WMRemoveNotificationObserver(panel);
|
||||||
|
}
|
||||||
|
|
||||||
static void downButtonCallback(WMWidget *self, void *data)
|
static void downButtonCallback(WMWidget *self, void *data)
|
||||||
{
|
{
|
||||||
(void) self;
|
(void) self;
|
||||||
@@ -284,7 +412,7 @@ static void createPanel(Panel *p)
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
wwarning("export_options[%d].class = %d, this should not happen\n",
|
wwarning("expert_options[%d].class = %d, this should not happen\n",
|
||||||
i, expert_options[i].class);
|
i, expert_options[i].class);
|
||||||
#endif
|
#endif
|
||||||
state = expert_options[i].def_state;
|
state = expert_options[i].def_state;
|
||||||
@@ -296,6 +424,11 @@ static void createPanel(Panel *p)
|
|||||||
|
|
||||||
WMMapSubwidgets(panel->box);
|
WMMapSubwidgets(panel->box);
|
||||||
WMSetScrollViewContentView(sv, WMWidgetView(f));
|
WMSetScrollViewContentView(sv, WMWidgetView(f));
|
||||||
|
/* keep references for the wheel handler and register it */
|
||||||
|
panel->sv = sv;
|
||||||
|
panel->frame = f;
|
||||||
|
WMCreateEventHandler(WMWidgetView(sv), ButtonPressMask, scrollViewWheelHandler, panel);
|
||||||
|
WMAddNotificationObserver(scrollViewRealizeObserver, panel, WMViewRealizedNotification, WMWidgetView(sv));
|
||||||
WMRealizeWidget(panel->box);
|
WMRealizeWidget(panel->box);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -356,6 +489,7 @@ Panel *InitExpert(WMWidget *parent)
|
|||||||
|
|
||||||
panel->callbacks.createWidgets = createPanel;
|
panel->callbacks.createWidgets = createPanel;
|
||||||
panel->callbacks.updateDomain = storeDefaults;
|
panel->callbacks.updateDomain = storeDefaults;
|
||||||
|
panel->callbacks.prepareForClose = scrollViewPrepareForClose;
|
||||||
|
|
||||||
AddSection(panel, ICON_FILE);
|
AddSection(panel, ICON_FILE);
|
||||||
|
|
||||||
|
|||||||
@@ -257,7 +257,7 @@ static void createPanel(Panel * p)
|
|||||||
WMMoveWidget(panel->hcdescF, 15, 130);
|
WMMoveWidget(panel->hcdescF, 15, 130);
|
||||||
|
|
||||||
panel->hcdescL = WMCreateLabel(panel->hcdescF);
|
panel->hcdescL = WMCreateLabel(panel->hcdescF);
|
||||||
WMResizeWidget(panel->hcdescL, 200, 60);
|
WMResizeWidget(panel->hcdescL, 200, 70);
|
||||||
WMMoveWidget(panel->hcdescL, 15, 10);
|
WMMoveWidget(panel->hcdescL, 15, 10);
|
||||||
WMSetLabelText(panel->hcdescL,
|
WMSetLabelText(panel->hcdescL,
|
||||||
_("Instructions:\n\n"
|
_("Instructions:\n\n"
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
|
|
||||||
#include "WPrefs.h"
|
#include "WPrefs.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
#include <sys/select.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
#include <X11/keysym.h>
|
#include <X11/keysym.h>
|
||||||
#include <X11/XKBlib.h>
|
#include <X11/XKBlib.h>
|
||||||
@@ -307,14 +309,53 @@ static int NumLockMask(Display *dpy)
|
|||||||
return mask;
|
return mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Append the modifier prefix and key name to the keybuf */
|
||||||
|
static void build_key_combo(unsigned int xkstate, const char *keyname,
|
||||||
|
unsigned int numlock_mask, char keybuf[64])
|
||||||
|
{
|
||||||
|
if (xkstate & ControlMask)
|
||||||
|
strcat(keybuf, "Control+");
|
||||||
|
if (xkstate & ShiftMask)
|
||||||
|
strcat(keybuf, "Shift+");
|
||||||
|
if ((numlock_mask != Mod1Mask) && (xkstate & Mod1Mask))
|
||||||
|
strcat(keybuf, "Mod1+");
|
||||||
|
if ((numlock_mask != Mod2Mask) && (xkstate & Mod2Mask))
|
||||||
|
strcat(keybuf, "Mod2+");
|
||||||
|
if ((numlock_mask != Mod3Mask) && (xkstate & Mod3Mask))
|
||||||
|
strcat(keybuf, "Mod3+");
|
||||||
|
if ((numlock_mask != Mod4Mask) && (xkstate & Mod4Mask))
|
||||||
|
strcat(keybuf, "Mod4+");
|
||||||
|
if ((numlock_mask != Mod5Mask) && (xkstate & Mod5Mask))
|
||||||
|
strcat(keybuf, "Mod5+");
|
||||||
|
wstrlcat(keybuf, keyname, 64);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Interactively capture a key shortcut or keychain,
|
||||||
|
* function waits KeychainTimeoutDelay or 300 ms after
|
||||||
|
* each key press for another key in the chain,
|
||||||
|
* and returns the full key specification string.
|
||||||
|
*/
|
||||||
char *capture_shortcut(Display *dpy, Bool *capturing, Bool convert_case)
|
char *capture_shortcut(Display *dpy, Bool *capturing, Bool convert_case)
|
||||||
{
|
{
|
||||||
XEvent ev;
|
XEvent ev;
|
||||||
KeySym ksym, lksym, uksym;
|
KeySym ksym, lksym, uksym;
|
||||||
char buffer[64];
|
/* Large enough for several chained chords */
|
||||||
char *key = NULL;
|
char buffer[512];
|
||||||
|
char keybuf[64];
|
||||||
|
char *key;
|
||||||
unsigned int numlock_mask;
|
unsigned int numlock_mask;
|
||||||
|
Bool have_key = False;
|
||||||
|
Bool chain_mode;
|
||||||
|
int timeout_ms;
|
||||||
|
|
||||||
|
timeout_ms = GetIntegerForKey("KeychainTimeoutDelay");
|
||||||
|
if (timeout_ms <= 0)
|
||||||
|
timeout_ms = 300;
|
||||||
|
|
||||||
|
buffer[0] = '\0';
|
||||||
|
|
||||||
|
/* ---- Phase 1: capture the first key (blocking) ---- */
|
||||||
while (*capturing) {
|
while (*capturing) {
|
||||||
XAllowEvents(dpy, AsyncKeyboard, CurrentTime);
|
XAllowEvents(dpy, AsyncKeyboard, CurrentTime);
|
||||||
WMNextEvent(dpy, &ev);
|
WMNextEvent(dpy, &ev);
|
||||||
@@ -332,41 +373,62 @@ char *capture_shortcut(Display *dpy, Bool *capturing, Bool convert_case)
|
|||||||
key = XKeysymToString(ksym);
|
key = XKeysymToString(ksym);
|
||||||
}
|
}
|
||||||
|
|
||||||
*capturing = 0;
|
keybuf[0] = '\0';
|
||||||
|
build_key_combo(ev.xkey.state, key, numlock_mask, keybuf);
|
||||||
|
wstrlcat(buffer, keybuf, sizeof(buffer));
|
||||||
|
have_key = True;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
WMHandleEvent(&ev);
|
WMHandleEvent(&ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!key)
|
/* ---- Phase 2: collect additional chain keys with timeout ---- */
|
||||||
|
chain_mode = (timeout_ms > 0);
|
||||||
|
while (*capturing && chain_mode) {
|
||||||
|
int xfd = ConnectionNumber(dpy);
|
||||||
|
fd_set rfds;
|
||||||
|
struct timeval tv;
|
||||||
|
|
||||||
|
if (!XPending(dpy)) {
|
||||||
|
FD_ZERO(&rfds);
|
||||||
|
FD_SET(xfd, &rfds);
|
||||||
|
tv.tv_sec = timeout_ms / 1000;
|
||||||
|
tv.tv_usec = (timeout_ms % 1000) * 1000;
|
||||||
|
XFlush(dpy);
|
||||||
|
if (select(xfd + 1, &rfds, NULL, NULL, &tv) == 0)
|
||||||
|
break; /* timeout: the chain is complete */
|
||||||
|
}
|
||||||
|
|
||||||
|
XAllowEvents(dpy, AsyncKeyboard, CurrentTime);
|
||||||
|
WMNextEvent(dpy, &ev);
|
||||||
|
if (ev.type == KeyPress && ev.xkey.keycode != 0) {
|
||||||
|
numlock_mask = NumLockMask(dpy);
|
||||||
|
ksym = W_KeycodeToKeysym(dpy, ev.xkey.keycode,
|
||||||
|
ev.xkey.state & numlock_mask ? 1 : 0);
|
||||||
|
|
||||||
|
if (!IsModifierKey(ksym)) {
|
||||||
|
if (convert_case) {
|
||||||
|
XConvertCase(ksym, &lksym, &uksym);
|
||||||
|
key = XKeysymToString(uksym);
|
||||||
|
} else {
|
||||||
|
key = XKeysymToString(ksym);
|
||||||
|
}
|
||||||
|
|
||||||
|
keybuf[0] = '\0';
|
||||||
|
build_key_combo(ev.xkey.state, key, numlock_mask, keybuf);
|
||||||
|
wstrlcat(buffer, " ", sizeof(buffer));
|
||||||
|
wstrlcat(buffer, keybuf, sizeof(buffer));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
WMHandleEvent(&ev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!have_key || !*capturing)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
buffer[0] = 0;
|
*capturing = 0;
|
||||||
|
|
||||||
if (ev.xkey.state & ControlMask)
|
|
||||||
strcat(buffer, "Control+");
|
|
||||||
|
|
||||||
if (ev.xkey.state & ShiftMask)
|
|
||||||
strcat(buffer, "Shift+");
|
|
||||||
|
|
||||||
if ((numlock_mask != Mod1Mask) && (ev.xkey.state & Mod1Mask))
|
|
||||||
strcat(buffer, "Mod1+");
|
|
||||||
|
|
||||||
if ((numlock_mask != Mod2Mask) && (ev.xkey.state & Mod2Mask))
|
|
||||||
strcat(buffer, "Mod2+");
|
|
||||||
|
|
||||||
if ((numlock_mask != Mod3Mask) && (ev.xkey.state & Mod3Mask))
|
|
||||||
strcat(buffer, "Mod3+");
|
|
||||||
|
|
||||||
if ((numlock_mask != Mod4Mask) && (ev.xkey.state & Mod4Mask))
|
|
||||||
strcat(buffer, "Mod4+");
|
|
||||||
|
|
||||||
if ((numlock_mask != Mod5Mask) && (ev.xkey.state & Mod5Mask))
|
|
||||||
strcat(buffer, "Mod5+");
|
|
||||||
|
|
||||||
wstrlcat(buffer, key, sizeof(buffer));
|
|
||||||
|
|
||||||
return wstrdup(buffer);
|
return wstrdup(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -444,7 +506,7 @@ static void captureClick(WMWidget * w, void *data)
|
|||||||
}
|
}
|
||||||
panel->capturing = 0;
|
panel->capturing = 0;
|
||||||
WMSetButtonText(w, _("Capture"));
|
WMSetButtonText(w, _("Capture"));
|
||||||
WMSetLabelText(panel->instructionsL, _("Click on Capture to interactively define the shortcut key."));
|
WMSetLabelText(panel->instructionsL, _("Click on Capture to interactively define the shortcut key(s)."));
|
||||||
XUngrabKeyboard(dpy, CurrentTime);
|
XUngrabKeyboard(dpy, CurrentTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -456,6 +518,9 @@ static void clearShortcut(WMWidget * w, void *data)
|
|||||||
/* Parameter not used, but tell the compiler that it is ok */
|
/* Parameter not used, but tell the compiler that it is ok */
|
||||||
(void) w;
|
(void) w;
|
||||||
|
|
||||||
|
/* Cancel any ongoing capture so the keychain loop is unblocked */
|
||||||
|
panel->capturing = 0;
|
||||||
|
|
||||||
WMSetTextFieldText(panel->shoT, NULL);
|
WMSetTextFieldText(panel->shoT, NULL);
|
||||||
|
|
||||||
if (row >= 0) {
|
if (row >= 0) {
|
||||||
|
|||||||
@@ -284,14 +284,14 @@ static void createPanel(Panel * p)
|
|||||||
|
|
||||||
/***************** Options ****************/
|
/***************** Options ****************/
|
||||||
panel->optF = WMCreateFrame(panel->box);
|
panel->optF = WMCreateFrame(panel->box);
|
||||||
WMResizeWidget(panel->optF, 255, 94);
|
WMResizeWidget(panel->optF, 255, 96);
|
||||||
WMMoveWidget(panel->optF, 15, 125);
|
WMMoveWidget(panel->optF, 15, 125);
|
||||||
WMSetFrameTitle(panel->optF, _("AppIcon bouncing"));
|
WMSetFrameTitle(panel->optF, _("AppIcon bouncing"));
|
||||||
|
|
||||||
for (i = 0; i < wlengthof(appicon_bouncing); i++) {
|
for (i = 0; i < wlengthof(appicon_bouncing); i++) {
|
||||||
panel->bounceB[i] = WMCreateSwitchButton(panel->optF);
|
panel->bounceB[i] = WMCreateSwitchButton(panel->optF);
|
||||||
WMResizeWidget(panel->bounceB[i], 237, 26);
|
WMResizeWidget(panel->bounceB[i], 237, 26);
|
||||||
WMMoveWidget(panel->bounceB[i], 9, 14 + i * 25);
|
WMMoveWidget(panel->bounceB[i], 9, 16 + i * 26);
|
||||||
WMSetButtonText(panel->bounceB[i], _(appicon_bouncing[i].label));
|
WMSetButtonText(panel->bounceB[i], _(appicon_bouncing[i].label));
|
||||||
|
|
||||||
if (appicon_bouncing[i].default_value)
|
if (appicon_bouncing[i].default_value)
|
||||||
@@ -306,7 +306,7 @@ static void createPanel(Panel * p)
|
|||||||
|
|
||||||
/***************** Workspace border ****************/
|
/***************** Workspace border ****************/
|
||||||
panel->borderF = WMCreateFrame(panel->box);
|
panel->borderF = WMCreateFrame(panel->box);
|
||||||
WMResizeWidget(panel->borderF, 220, 75);
|
WMResizeWidget(panel->borderF, 220, 77);
|
||||||
WMMoveWidget(panel->borderF, 285, 144);
|
WMMoveWidget(panel->borderF, 285, 144);
|
||||||
WMSetFrameTitle(panel->borderF, _("Workspace border"));
|
WMSetFrameTitle(panel->borderF, _("Workspace border"));
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "WPrefs.h"
|
#include "WPrefs.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <X11/Xatom.h>
|
||||||
|
|
||||||
#ifdef HAVE_STDNORETURN
|
#ifdef HAVE_STDNORETURN
|
||||||
#include <stdnoreturn.h>
|
#include <stdnoreturn.h>
|
||||||
@@ -516,6 +517,9 @@ void Initialize(WMScreen * scr)
|
|||||||
char **list;
|
char **list;
|
||||||
int i;
|
int i;
|
||||||
char *path;
|
char *path;
|
||||||
|
long pid;
|
||||||
|
Atom net_wm_pid;
|
||||||
|
Display *dpy = WMScreenDisplay(scr);
|
||||||
|
|
||||||
list = RSupportedFileFormats();
|
list = RSupportedFileFormats();
|
||||||
for (i = 0; list[i] != NULL; i++) {
|
for (i = 0; list[i] != NULL; i++) {
|
||||||
@@ -547,6 +551,11 @@ void Initialize(WMScreen * scr)
|
|||||||
|
|
||||||
WMRealizeWidget(WPrefs.win);
|
WMRealizeWidget(WPrefs.win);
|
||||||
|
|
||||||
|
net_wm_pid = XInternAtom(dpy, "_NET_WM_PID", False);
|
||||||
|
pid = (long)getpid();
|
||||||
|
XChangeProperty(dpy, WMWidgetXID(WPrefs.win), net_wm_pid, XA_CARDINAL,
|
||||||
|
32, PropModeReplace, (unsigned char *)&pid, 1);
|
||||||
|
|
||||||
WMSetWindowMiniwindowImage(WPrefs.win, WMGetApplicationIconImage(scr));
|
WMSetWindowMiniwindowImage(WPrefs.win, WMGetApplicationIconImage(scr));
|
||||||
|
|
||||||
WMMapWidget(WPrefs.win);
|
WMMapWidget(WPrefs.win);
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ CATALOGS = @WPREFSMOFILES@
|
|||||||
CLEANFILES = $(DOMAIN).pot $(CATALOGS)
|
CLEANFILES = $(DOMAIN).pot $(CATALOGS)
|
||||||
|
|
||||||
EXTRA_DIST = bg.po ca.po cs.po de.po es.po et.po fi.po fr.po fy.po hr.po hu.po \
|
EXTRA_DIST = bg.po ca.po cs.po de.po es.po et.po fi.po fr.po fy.po hr.po hu.po \
|
||||||
it.po ja.po ko.po nl.po pt.po ru.po sk.po tr.po uk.po zh_CN.po zh_TW.po
|
it.po ja.po ko.po nl.po pt.po ru.po sk.po sr.po tr.po uk.po zh_CN.po \
|
||||||
|
zh_TW.po
|
||||||
|
|
||||||
POTFILES = \
|
POTFILES = \
|
||||||
$(top_srcdir)/WPrefs.app/Appearance.c \
|
$(top_srcdir)/WPrefs.app/Appearance.c \
|
||||||
|
|||||||
@@ -26,4 +26,4 @@ et.po Estonian Ivar Smolin <okul@linux.ee>
|
|||||||
ca.po Catalan Ernest Adrogué <eadrogue@gmx.net>
|
ca.po Catalan Ernest Adrogué <eadrogue@gmx.net>
|
||||||
nl.po Dutch Alwin <translations@ziggo.nl>
|
nl.po Dutch Alwin <translations@ziggo.nl>
|
||||||
fy.po Frisian Alwin <translations@ziggo.nl>
|
fy.po Frisian Alwin <translations@ziggo.nl>
|
||||||
sr.po Serbian Strahinya Radich <contact@strahinja.org>
|
sr.po Serbian Strahinya Radich <sr@strahinja.org>
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2001-04-18 23:22+03:00\n"
|
"PO-Revision-Date: 2001-04-18 23:22+03:00\n"
|
||||||
"Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n"
|
"Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n"
|
||||||
"Language-Team: Bulgarian <dict@linux.zonebg.com>\n"
|
"Language-Team: Bulgarian <dict@linux.zonebg.com>\n"
|
||||||
|
"Language: bg\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2003-09-16 23:15+0200\n"
|
"PO-Revision-Date: 2003-09-16 23:15+0200\n"
|
||||||
"Last-Translator: Ernest Adrogué <eadrogue@gmx.net>\n"
|
"Last-Translator: Ernest Adrogué <eadrogue@gmx.net>\n"
|
||||||
"Language-Team: Catalan <ca@dodds.net>\n"
|
"Language-Team: Catalan <ca@dodds.net>\n"
|
||||||
|
"Language: ca\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2001-10-14 21:07+0000\n"
|
"PO-Revision-Date: 2001-10-14 21:07+0000\n"
|
||||||
"Last-Translator: Jiří Hnídek <jiri.hnidek@vslib.cz>\n"
|
"Last-Translator: Jiří Hnídek <jiri.hnidek@vslib.cz>\n"
|
||||||
"Language-Team: czech <cs@li.org>\n"
|
"Language-Team: czech <cs@li.org>\n"
|
||||||
|
"Language: cs\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: unknown\n"
|
"Content-Transfer-Encoding: unknown\n"
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2010-02-02 10:49+0100\n"
|
"PO-Revision-Date: 2010-02-02 10:49+0100\n"
|
||||||
"Last-Translator: Carlos R. Mafra <crmafra@gmail.com>\n"
|
"Last-Translator: Carlos R. Mafra <crmafra@gmail.com>\n"
|
||||||
"Language-Team: German <>\n"
|
"Language-Team: German <>\n"
|
||||||
|
"Language: de\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2003-09-19 03:05-0400\n"
|
"PO-Revision-Date: 2003-09-19 03:05-0400\n"
|
||||||
"Last-Translator: Alberto Giménez <algibe@teleline.es>\n"
|
"Last-Translator: Alberto Giménez <algibe@teleline.es>\n"
|
||||||
"Language-Team: Spanish \n"
|
"Language-Team: Spanish \n"
|
||||||
|
"Language: es\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: unknown\n"
|
"Content-Transfer-Encoding: unknown\n"
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2001-09-05 09:40+0200\n"
|
"PO-Revision-Date: 2001-09-05 09:40+0200\n"
|
||||||
"Last-Translator: Ivar Smolin <okul@linux.ee>\n"
|
"Last-Translator: Ivar Smolin <okul@linux.ee>\n"
|
||||||
"Language-Team: Estonian <linux-ee@eenet.ee>\n"
|
"Language-Team: Estonian <linux-ee@eenet.ee>\n"
|
||||||
|
"Language: et\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -475,7 +476,7 @@ msgstr "Window Maker vőttis vastu signaali %i."
|
|||||||
|
|
||||||
#: ../src/dialog.c:1707
|
#: ../src/dialog.c:1707
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to bugs@windowmaker.info."
|
"BUGFORM and report it to bugs@windowmaker.info."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" See fataalviga on arvatavasti pőhjustatud programmi veast. Palun täitke "
|
" See fataalviga on arvatavasti pőhjustatud programmi veast. Palun täitke "
|
||||||
@@ -1437,7 +1438,7 @@ msgstr "ei őnnestu käivitada alternatiivset aknahaldurit. Annan alla."
|
|||||||
|
|
||||||
#: ../src/startup.c:419
|
#: ../src/startup.c:419
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"aset on leidnud fataalne viga, arvatavasti programmi viga. Palun täida "
|
"aset on leidnud fataalne viga, arvatavasti programmi viga. Palun täida "
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2001-09-03 22:18+03:00\n"
|
"PO-Revision-Date: 2001-09-03 22:18+03:00\n"
|
||||||
"Last-Translator: Tomi Kajala <tomi@iki.fi>\n"
|
"Last-Translator: Tomi Kajala <tomi@iki.fi>\n"
|
||||||
"Language-Team: Finnish <fi@li.org>\n"
|
"Language-Team: Finnish <fi@li.org>\n"
|
||||||
|
"Language: fi\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 1999-07-28 16:31-0100\n"
|
"PO-Revision-Date: 1999-07-28 16:31-0100\n"
|
||||||
"Last-Translator: Antoine Hulin <antoine.hulin@origan.fdn.org>\n"
|
"Last-Translator: Antoine Hulin <antoine.hulin@origan.fdn.org>\n"
|
||||||
"Language-Team: French <fr@li.org>\n"
|
"Language-Team: French <fr@li.org>\n"
|
||||||
|
"Language: fr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 1998-08-24 14:36:41-0300\n"
|
"PO-Revision-Date: 1998-08-24 14:36:41-0300\n"
|
||||||
"Last-Translator: Toni Bilić tbilic@oliver.efos.hr \n"
|
"Last-Translator: Toni Bilić tbilic@oliver.efos.hr \n"
|
||||||
"Language-Team: Croatian \n"
|
"Language-Team: Croatian \n"
|
||||||
|
"Language: hr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2014-02-18 00:33+0100\n"
|
"PO-Revision-Date: 2014-02-18 00:33+0100\n"
|
||||||
"Last-Translator: BALATON Zoltán <balaton@eik.bme.hu>\n"
|
"Last-Translator: BALATON Zoltán <balaton@eik.bme.hu>\n"
|
||||||
"Language-Team: Hungarian\n"
|
"Language-Team: Hungarian\n"
|
||||||
"Language: \n"
|
"Language: hu\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2001-05-21\n"
|
"PO-Revision-Date: 2001-05-21\n"
|
||||||
"Last-Translator: Michele Campeotto <micampe@f2s.com\n"
|
"Last-Translator: Michele Campeotto <micampe@f2s.com\n"
|
||||||
"Language-Team: Italian\n"
|
"Language-Team: Italian\n"
|
||||||
|
"Language: it\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: unknown\n"
|
"Content-Transfer-Encoding: unknown\n"
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2013-08-13 19:26+0900\n"
|
"PO-Revision-Date: 2013-08-13 19:26+0900\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Korean\n"
|
"Language-Team: Korean\n"
|
||||||
|
"Language: ko\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2000-01-04 18:25-0300\n"
|
"PO-Revision-Date: 2000-01-04 18:25-0300\n"
|
||||||
"Last-Translator: Eliphas Levy Theodoro <eliphas@conectiva.com.br>\n"
|
"Last-Translator: Eliphas Levy Theodoro <eliphas@conectiva.com.br>\n"
|
||||||
"Language-Team: Portuguese \n"
|
"Language-Team: Portuguese \n"
|
||||||
|
"Language: pt\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2002-09-12 17:45+0300\n"
|
"PO-Revision-Date: 2002-09-12 17:45+0300\n"
|
||||||
"Last-Translator: awn@bcs.zp.ua\n"
|
"Last-Translator: awn@bcs.zp.ua\n"
|
||||||
"Language-Team: Russian\n"
|
"Language-Team: Russian\n"
|
||||||
|
"Language: ru\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2001-10-15 20:40+0100\n"
|
"PO-Revision-Date: 2001-10-15 20:40+0100\n"
|
||||||
"Last-Translator: Jan \"judas\" Tomka <judas@linux.sk>\n"
|
"Last-Translator: Jan \"judas\" Tomka <judas@linux.sk>\n"
|
||||||
"Language-Team: Slovak <sk@li.org>\n"
|
"Language-Team: Slovak <sk@li.org>\n"
|
||||||
|
"Language: sk\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# 1998-2006 Dan Pascu
|
# 1998-2006 Dan Pascu
|
||||||
# 2013-2020 Window Maker Developers Team
|
# 2013-2020 Window Maker Developers Team
|
||||||
# This file is distributed under the same license as the Window Maker package.
|
# This file is distributed under the same license as the Window Maker package.
|
||||||
# Strahinya Radich (Страхиња Радић) <contact@strahinja.org>, 2023.
|
# Strahinya Radich (Страхиња Радић) <sr@strahinja.org>, 2023.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -11,7 +11,7 @@ msgstr ""
|
|||||||
"Report-Msgid-Bugs-To: wmaker-dev@googlegroups.com\n"
|
"Report-Msgid-Bugs-To: wmaker-dev@googlegroups.com\n"
|
||||||
"POT-Creation-Date: 2023-11-02 19:25+0100\n"
|
"POT-Creation-Date: 2023-11-02 19:25+0100\n"
|
||||||
"PO-Revision-Date: 2023-11-02 19:48+0100\n"
|
"PO-Revision-Date: 2023-11-02 19:48+0100\n"
|
||||||
"Last-Translator: Страхиња Радић <contact@strahinja.org>\n"
|
"Last-Translator: Страхиња Радић <sr@strahinja.org>\n"
|
||||||
"Language-Team: Serbian <sr@li.org>\n"
|
"Language-Team: Serbian <sr@li.org>\n"
|
||||||
"Language: sr\n"
|
"Language: sr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2004-09-06 21:42+4000\n"
|
"PO-Revision-Date: 2004-09-06 21:42+4000\n"
|
||||||
"Last-Translator: Victor Forsyuk <victor@ksi-linux.com>\n"
|
"Last-Translator: Victor Forsyuk <victor@ksi-linux.com>\n"
|
||||||
"Language-Team: KSI Linux Ukrainian <uk@ksi-linux.com>\n"
|
"Language-Team: KSI Linux Ukrainian <uk@ksi-linux.com>\n"
|
||||||
|
"Language: uk\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 1999-07-05 23:20+0800\n"
|
"PO-Revision-Date: 1999-07-05 23:20+0800\n"
|
||||||
"Last-Translator: Wang Jian <larkw@263.net>\n"
|
"Last-Translator: Wang Jian <larkw@263.net>\n"
|
||||||
"Language-Team: chinese <zh@li.org>\n"
|
"Language-Team: chinese <zh@li.org>\n"
|
||||||
|
"Language: zh_CN\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2005-01-11 17:46+0800\n"
|
"PO-Revision-Date: 2005-01-11 17:46+0800\n"
|
||||||
"Last-Translator: Li Wei Jih <lwj83@cs.ccu.edu.tw>\n"
|
"Last-Translator: Li Wei Jih <lwj83@cs.ccu.edu.tw>\n"
|
||||||
"Language-Team: chinese <zh@li.org>\n"
|
"Language-Team: chinese <zh@li.org>\n"
|
||||||
|
"Language: zh_TW\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
|
|||||||
@@ -233,7 +233,7 @@
|
|||||||
ScreenSwitchKey = None;
|
ScreenSwitchKey = None;
|
||||||
RunKey = None;
|
RunKey = None;
|
||||||
ExitKey = None;
|
ExitKey = None;
|
||||||
ScreenCaptureKey = Print;
|
ScreenCaptureKey = None;
|
||||||
WindowCaptureKey = None;
|
WindowCaptureKey = None;
|
||||||
PartialCaptureKey = None;
|
PartialCaptureKey = None;
|
||||||
NormalCursor = (builtin, left_ptr);
|
NormalCursor = (builtin, left_ptr);
|
||||||
@@ -252,5 +252,7 @@
|
|||||||
SelectCursor = (builtin, cross);
|
SelectCursor = (builtin, cross);
|
||||||
DialogHistoryLines = 500;
|
DialogHistoryLines = 500;
|
||||||
CycleActiveHeadOnly = NO;
|
CycleActiveHeadOnly = NO;
|
||||||
|
CycleAllWorkspaces = NO;
|
||||||
CycleIgnoreMinimized = NO;
|
CycleIgnoreMinimized = NO;
|
||||||
|
WindowListAppIcons = NO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ menu.bg Bulgarian Slavei Karadjov <slaff@exco.net>
|
|||||||
menu.sk Slovak judas@hell <tomka@oalevice.sk>
|
menu.sk Slovak judas@hell <tomka@oalevice.sk>
|
||||||
menu.nl Dutch Alwin <translations@ziggo.nl>
|
menu.nl Dutch Alwin <translations@ziggo.nl>
|
||||||
menu.fy Frisian Alwin <translations@ziggo.nl>
|
menu.fy Frisian Alwin <translations@ziggo.nl>
|
||||||
menu.sr Serbian Strahinya Radich <contact@strahinja.org>
|
menu.sr Serbian Strahinya Radich <sr@strahinja.org>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -81,5 +81,5 @@ plmenu.sk Slovak judas@hell <tomka@oalevice.sk>
|
|||||||
plmenu.ja Japanese Seiichi SATO <sato@cvs-net.co.jp>
|
plmenu.ja Japanese Seiichi SATO <sato@cvs-net.co.jp>
|
||||||
plmenu.nl Dutch Alwin <translations@ziggo.nl>
|
plmenu.nl Dutch Alwin <translations@ziggo.nl>
|
||||||
plmenu.fy Frisian Alwin <translations@ziggo.nl>
|
plmenu.fy Frisian Alwin <translations@ziggo.nl>
|
||||||
plmenu.sr Serbian Strahinya Radich <contact@strahinja.org>
|
plmenu.sr Serbian Strahinya Radich <sr@strahinja.org>
|
||||||
|
|
||||||
|
|||||||
@@ -4,4 +4,3 @@ Comment=This session logs you into Window Maker
|
|||||||
Exec=wmaker
|
Exec=wmaker
|
||||||
TryExec=wmaker
|
TryExec=wmaker
|
||||||
DesktopNames=WindowMaker
|
DesktopNames=WindowMaker
|
||||||
X-GDM-SessionRegisters=true
|
|
||||||
|
|||||||
28
autogen.sh
28
autogen.sh
@@ -1,26 +1,16 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
srcdir=$(dirname $0)
|
||||||
|
test -z "$srcdir" && srcdir=.
|
||||||
|
|
||||||
# Generate the documentation about compiling Window Maker
|
# Generate the documentation about compiling Window Maker
|
||||||
./script/generate-txt-from-texi.sh "doc/build/Compilation.texi" -o "INSTALL-WMAKER"
|
$srcdir/script/generate-txt-from-texi.sh "$srcdir/doc/build/Compilation.texi" \
|
||||||
./script/generate-txt-from-texi.sh "doc/build/Translations.texi" -o "README.i18n"
|
-o "$srcdir/INSTALL-WMAKER"
|
||||||
|
$srcdir/script/generate-txt-from-texi.sh "$srcdir/doc/build/Translations.texi" \
|
||||||
|
-o "$srcdir/README.i18n"
|
||||||
|
|
||||||
# Change date of the files to the past so they will be regenerated by 'make'
|
# Change date of the files to the past so they will be regenerated by 'make'
|
||||||
touch -d '2000-01-01' INSTALL-WMAKER README.i18n
|
touch -d '2000-01-01' $srcdir/INSTALL-WMAKER $srcdir/README.i18n
|
||||||
|
|
||||||
# Generate the configure script from the 'configure.ac'
|
# Generate the configure script from the 'configure.ac'
|
||||||
autoreconf -vfi -I m4
|
autoreconf -vfi -I m4 $srcdir
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
if [ -x config.status -a -z "$*" ]; then
|
|
||||||
./config.status --recheck
|
|
||||||
else
|
|
||||||
if test -z "$*"; then
|
|
||||||
echo "I am going to run ./configure with no arguments - if you wish "
|
|
||||||
echo "to pass any to it, please specify them on the $0 command line."
|
|
||||||
echo "If you do not wish to run ./configure, press Ctrl-C now."
|
|
||||||
trap 'echo "configure aborted" ; exit 0' 1 2 15
|
|
||||||
sleep 1
|
|
||||||
fi
|
|
||||||
./configure "$@"
|
|
||||||
fi
|
|
||||||
|
|||||||
59
configure.ac
59
configure.ac
@@ -71,16 +71,16 @@ dnl 6. If any interfaces have been removed or changed since the last
|
|||||||
dnl public release, then set age to 0.
|
dnl public release, then set age to 0.
|
||||||
dnl
|
dnl
|
||||||
dnl libwraster
|
dnl libwraster
|
||||||
WRASTER_CURRENT=7
|
WRASTER_CURRENT=8
|
||||||
WRASTER_REVISION=0
|
WRASTER_REVISION=0
|
||||||
WRASTER_AGE=1
|
WRASTER_AGE=2
|
||||||
WRASTER_VERSION=$WRASTER_CURRENT:$WRASTER_REVISION:$WRASTER_AGE
|
WRASTER_VERSION=$WRASTER_CURRENT:$WRASTER_REVISION:$WRASTER_AGE
|
||||||
AC_SUBST(WRASTER_VERSION)
|
AC_SUBST(WRASTER_VERSION)
|
||||||
dnl
|
dnl
|
||||||
dnl libWINGs
|
dnl libWINGs
|
||||||
WINGS_CURRENT=5
|
WINGS_CURRENT=6
|
||||||
WINGS_REVISION=0
|
WINGS_REVISION=0
|
||||||
WINGS_AGE=2
|
WINGS_AGE=3
|
||||||
WINGS_VERSION=$WINGS_CURRENT:$WINGS_REVISION:$WINGS_AGE
|
WINGS_VERSION=$WINGS_CURRENT:$WINGS_REVISION:$WINGS_AGE
|
||||||
AC_SUBST(WINGS_VERSION)
|
AC_SUBST(WINGS_VERSION)
|
||||||
dnl
|
dnl
|
||||||
@@ -97,7 +97,6 @@ dnl ===================
|
|||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
WM_PROG_CC_C11
|
WM_PROG_CC_C11
|
||||||
AC_PROG_LN_S
|
AC_PROG_LN_S
|
||||||
AC_PROG_GCC_TRADITIONAL
|
|
||||||
LT_INIT
|
LT_INIT
|
||||||
|
|
||||||
|
|
||||||
@@ -131,6 +130,20 @@ AS_IF([test "x$debug" = "xyes"],
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl Native CPU Optimizations Option
|
||||||
|
dnl =================
|
||||||
|
m4_divert_push([INIT_PREPARE])dnl
|
||||||
|
AC_ARG_ENABLE([native],
|
||||||
|
[AS_HELP_STRING([--enable-native], [enable native option, @<:@default=no@:>@])],
|
||||||
|
[AS_CASE(["$enableval"],
|
||||||
|
[yes], [native=yes],
|
||||||
|
[no], [native=no],
|
||||||
|
[AC_MSG_ERROR([bad value $enableval for --enable-native])] )],
|
||||||
|
[native=no])
|
||||||
|
m4_divert_pop([INIT_PREPARE])dnl
|
||||||
|
AS_IF([test "x$native" = "xyes"],
|
||||||
|
[AX_CFLAGS_GCC_OPTION([-march=native])])
|
||||||
|
|
||||||
AX_CFLAGS_GCC_OPTION([-Wall])
|
AX_CFLAGS_GCC_OPTION([-Wall])
|
||||||
AX_CFLAGS_GCC_OPTION([-Wextra -Wno-sign-compare])
|
AX_CFLAGS_GCC_OPTION([-Wextra -Wno-sign-compare])
|
||||||
dnl
|
dnl
|
||||||
@@ -542,7 +555,9 @@ AC_ARG_ENABLE([modelock],
|
|||||||
m4_divert_pop([INIT_PREPARE])dnl
|
m4_divert_pop([INIT_PREPARE])dnl
|
||||||
|
|
||||||
AS_IF([test "x$enable_modelock" = "xyes"],
|
AS_IF([test "x$enable_modelock" = "xyes"],
|
||||||
[AC_DEFINE([XKB_MODELOCK], [1], [whether XKB language MODELOCK should be enabled]) ])
|
[WM_XEXT_CHECK_XKBFILE
|
||||||
|
AS_IF([test "x$enable_modelock" = "xyes"],
|
||||||
|
[AC_DEFINE([XKB_MODELOCK], [1], [whether XKB language MODELOCK should be enabled])])])
|
||||||
|
|
||||||
|
|
||||||
dnl XDND Drag-nd-Drop support
|
dnl XDND Drag-nd-Drop support
|
||||||
@@ -767,6 +782,19 @@ m4_divert_pop([INIT_PREPARE])dnl
|
|||||||
WM_IMGFMT_CHECK_JPEG
|
WM_IMGFMT_CHECK_JPEG
|
||||||
|
|
||||||
|
|
||||||
|
dnl JXL Support
|
||||||
|
dnl ============
|
||||||
|
m4_divert_push([INIT_PREPARE])dnl
|
||||||
|
AC_ARG_ENABLE([jxl],
|
||||||
|
[AS_HELP_STRING([--disable-jxl], [disable JXL support through libjxl])],
|
||||||
|
[AS_CASE(["$enableval"],
|
||||||
|
[yes|no], [],
|
||||||
|
[AC_MSG_ERROR([bad value $enableval for --enable-jxl])] )],
|
||||||
|
[enable_jxl=auto])
|
||||||
|
m4_divert_pop([INIT_PREPARE])dnl
|
||||||
|
WM_IMGFMT_CHECK_JXL
|
||||||
|
|
||||||
|
|
||||||
dnl GIF Support
|
dnl GIF Support
|
||||||
dnl ============
|
dnl ============
|
||||||
m4_divert_push([INIT_PREPARE])dnl
|
m4_divert_push([INIT_PREPARE])dnl
|
||||||
@@ -845,6 +873,22 @@ AM_CONDITIONAL([ICON_EXT_XPM], [test "x$ICONEXT" = "xxpm"])
|
|||||||
AM_CONDITIONAL([ICON_EXT_TIFF], [test "x$ICONEXT" = "xtiff"])
|
AM_CONDITIONAL([ICON_EXT_TIFF], [test "x$ICONEXT" = "xtiff"])
|
||||||
|
|
||||||
|
|
||||||
|
dnl Archive Support for wmiv
|
||||||
|
dnl =================================
|
||||||
|
dnl Check for libarchive (comprehensive archive support)
|
||||||
|
AC_CHECK_LIB([archive], [archive_read_new], [
|
||||||
|
AC_CHECK_HEADER([archive.h], [
|
||||||
|
AC_DEFINE([HAVE_LIBARCHIVE], [1], [Define if libarchive is available])
|
||||||
|
LIBARCHIVE_LIBS="-larchive"
|
||||||
|
], [
|
||||||
|
AC_MSG_WARN([libarchive header not found, archive support disabled])
|
||||||
|
])
|
||||||
|
], [
|
||||||
|
AC_MSG_WARN([libarchive not found, archive support disabled])
|
||||||
|
])
|
||||||
|
AC_SUBST([LIBARCHIVE_LIBS])
|
||||||
|
|
||||||
|
|
||||||
dnl ==============================================
|
dnl ==============================================
|
||||||
dnl End of Graphic Format Libraries
|
dnl End of Graphic Format Libraries
|
||||||
dnl ==============================================
|
dnl ==============================================
|
||||||
@@ -1009,6 +1053,9 @@ echo "Supported graphic format libraries :$supported_gfx"
|
|||||||
echo "Unsupported features :$unsupported"
|
echo "Unsupported features :$unsupported"
|
||||||
echo "Pango text layout support in WINGs : $pango"
|
echo "Pango text layout support in WINGs : $pango"
|
||||||
echo "Translated languages to support :$supported_locales"
|
echo "Translated languages to support :$supported_locales"
|
||||||
|
AS_IF([test "x$native" = "xyes"],
|
||||||
|
[AS_ECHO(["Target architecture : native"]) ],
|
||||||
|
[AS_ECHO(["Target architecture : generic"]) ])
|
||||||
AS_IF([test "x$WEB_REPO_ROOT" != "x"],
|
AS_IF([test "x$WEB_REPO_ROOT" != "x"],
|
||||||
[AS_ECHO(["Git repository for WMaker's Website : $WEB_REPO_ROOT"]) ])
|
[AS_ECHO(["Git repository for WMaker's Website : $WEB_REPO_ROOT"]) ])
|
||||||
AS_IF([test "x$debug" = "xyes"],
|
AS_IF([test "x$debug" = "xyes"],
|
||||||
|
|||||||
12
doc/build/Compilation.texi
vendored
12
doc/build/Compilation.texi
vendored
@@ -204,6 +204,11 @@ Note that if you don't have it, @command{configure} will issue a big warning in
|
|||||||
this is because JPEG images are often used in themes and for background images
|
this is because JPEG images are often used in themes and for background images
|
||||||
so you probably want this format supported.
|
so you probably want this format supported.
|
||||||
|
|
||||||
|
@item @emph{libjxl} 0.7.0 or newer
|
||||||
|
|
||||||
|
For @emph{JXL} image support,
|
||||||
|
@uref{https://github.com/libjxl/libjxl}
|
||||||
|
|
||||||
@item @emph{libgif} 2.2 or @emph{libungif}
|
@item @emph{libgif} 2.2 or @emph{libungif}
|
||||||
|
|
||||||
For @emph{GIF} image support,
|
For @emph{GIF} image support,
|
||||||
@@ -477,6 +482,9 @@ Disable GIF support in @emph{WRaster} library; when enabled use @file{libgif} or
|
|||||||
@item --disable-jpeg
|
@item --disable-jpeg
|
||||||
Disable JPEG support in @emph{WRaster} library; when enabled use @file{libjpeg}.
|
Disable JPEG support in @emph{WRaster} library; when enabled use @file{libjpeg}.
|
||||||
|
|
||||||
|
@item --disable-jxl
|
||||||
|
Disable JPEG-XL support in @emph{WRaster} library; when enabled use @file{libjxl}.
|
||||||
|
|
||||||
@item --without-libbsd
|
@item --without-libbsd
|
||||||
Refuse use of the @file{libbsd} compatibility library in @emph{WINGs} utility library,
|
Refuse use of the @file{libbsd} compatibility library in @emph{WINGs} utility library,
|
||||||
even if your system provides it.
|
even if your system provides it.
|
||||||
@@ -643,6 +651,10 @@ appropriate requirements and works with this.
|
|||||||
Despite all this, if you think there's a use for it and feel in the mood to help, do not hesitate to
|
Despite all this, if you think there's a use for it and feel in the mood to help, do not hesitate to
|
||||||
discuss on the mailing list @value{emailsupport} to get it working.
|
discuss on the mailing list @value{emailsupport} to get it working.
|
||||||
|
|
||||||
|
@item --enable-native
|
||||||
|
Enable native CPU optimizations by adding @option{-march=native} to the compiler flags, tuning the
|
||||||
|
generated code for the build machine at the expense of portability.
|
||||||
|
|
||||||
@item --with-web-repo=@i{PATH}
|
@item --with-web-repo=@i{PATH}
|
||||||
Enable generation of HTML documentation to be uploaded to @sc{Window Maker}'s website.
|
Enable generation of HTML documentation to be uploaded to @sc{Window Maker}'s website.
|
||||||
The @file{@i{PATH}} is the directory where you have cloned the homepage's repository.
|
The @file{@i{PATH}} is the directory where you have cloned the homepage's repository.
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ necessary.
|
|||||||
.SH "OPTIONS"
|
.SH "OPTIONS"
|
||||||
.TP
|
.TP
|
||||||
.BI \-display " host:display.screen"
|
.BI \-display " host:display.screen"
|
||||||
specify display to use.
|
specify the display to use.
|
||||||
On multiheaded machines, Window Maker will automatically manage all screens.
|
On multiheaded machines, Window Maker will automatically manage all screens.
|
||||||
If you want Window Maker to manage only a specific screen, you must supply
|
If you want Window Maker to manage only a specific screen, you must supply
|
||||||
the screen number you want to have managed with the
|
the screen number you want to have managed with the
|
||||||
@@ -24,13 +24,13 @@ wmaker -display :0.1
|
|||||||
.EE
|
.EE
|
||||||
.TP
|
.TP
|
||||||
.B \-\-dont\-restore
|
.B \-\-dont\-restore
|
||||||
do not restore saved session
|
do not restore the saved session
|
||||||
.TP
|
.TP
|
||||||
.B \-\-global_defaults_path
|
.B \-\-global_defaults_path
|
||||||
print the path where the files for the default configuration are installed and exit
|
print the path where the files for the default configuration are installed and exit
|
||||||
.TP
|
.TP
|
||||||
.B \-\-help
|
.B \-\-help
|
||||||
print the list of command line options supported, one per line, and exit
|
print the list of supported command line options, one per line, and exit
|
||||||
.TP
|
.TP
|
||||||
.BI \-\-locale " locale"
|
.BI \-\-locale " locale"
|
||||||
specify the locale (i18n language) to use; Window Maker will also set the variable
|
specify the locale (i18n language) to use; Window Maker will also set the variable
|
||||||
@@ -38,7 +38,7 @@ specify the locale (i18n language) to use; Window Maker will also set the variab
|
|||||||
which will be inherited by all applications started from Window Maker
|
which will be inherited by all applications started from Window Maker
|
||||||
.TP
|
.TP
|
||||||
.B \-\-no\-autolaunch
|
.B \-\-no\-autolaunch
|
||||||
do not launch at start-up the applications that were marked in the configuration as autolanched
|
do not launch at start-up the applications that were marked in the configuration as autolaunched
|
||||||
.TP
|
.TP
|
||||||
.B \-\-no\-clip
|
.B \-\-no\-clip
|
||||||
do not show the workspace Clip
|
do not show the workspace Clip
|
||||||
@@ -53,7 +53,7 @@ disable the Drawers in the Dock
|
|||||||
@!HAVE_INOTIFY@disable the periodic check on the configuration file to reload it automatically
|
@!HAVE_INOTIFY@disable the periodic check on the configuration file to reload it automatically
|
||||||
@USE_ICCCM_WMREPLACE@.TP
|
@USE_ICCCM_WMREPLACE@.TP
|
||||||
@USE_ICCCM_WMREPLACE@.B \-\-replace
|
@USE_ICCCM_WMREPLACE@.B \-\-replace
|
||||||
@USE_ICCCM_WMREPLACE@ask the currently running window manager to let Window Maker take his place
|
@USE_ICCCM_WMREPLACE@ask the currently running window manager to let Window Maker take its place
|
||||||
.TP
|
.TP
|
||||||
.B \-\-static
|
.B \-\-static
|
||||||
do not update or save automatically the configuration
|
do not update or save automatically the configuration
|
||||||
@@ -88,7 +88,7 @@ few options not available using the Attributes Editor.
|
|||||||
.B @pkgconfdir@/
|
.B @pkgconfdir@/
|
||||||
All the above-mentioned files are READ from here if not found except
|
All the above-mentioned files are READ from here if not found except
|
||||||
for WMState, which is COPIED from here. No matter where they are read
|
for WMState, which is COPIED from here. No matter where they are read
|
||||||
from, if it's necessary to write configuration changes back into this
|
from, if it's necessary to write configuration changes back into these
|
||||||
files, user's files will be written to.
|
files, user's files will be written to.
|
||||||
.TP
|
.TP
|
||||||
.B ~/GNUstep/Library/WindowMaker/autostart
|
.B ~/GNUstep/Library/WindowMaker/autostart
|
||||||
@@ -108,7 +108,7 @@ might be shut down before the script is executed.
|
|||||||
The menu file indicated in WMRootMenu is looked for here...
|
The menu file indicated in WMRootMenu is looked for here...
|
||||||
.TP
|
.TP
|
||||||
.B @pkgdatadir@/
|
.B @pkgdatadir@/
|
||||||
and here, in that order. Unless, the indicated path is an absolute path.
|
and here, in that order. Unless the indicated path is an absolute path.
|
||||||
.TP
|
.TP
|
||||||
.B ~/GNUstep/Library/WindowMaker/Pixmaps/
|
.B ~/GNUstep/Library/WindowMaker/Pixmaps/
|
||||||
Window Maker looks for \fBpixmaps\fP here
|
Window Maker looks for \fBpixmaps\fP here
|
||||||
@@ -131,7 +131,7 @@ Window Maker looks for theme files here (ibid)
|
|||||||
System-wide (Window Maker-specific) pixmaps are located here
|
System-wide (Window Maker-specific) pixmaps are located here
|
||||||
.TP
|
.TP
|
||||||
.B @pkgdatadir@/Styles/
|
.B @pkgdatadir@/Styles/
|
||||||
System wide styles are here
|
System-wide styles are here
|
||||||
.TP
|
.TP
|
||||||
.B @pkgdatadir@/Themes/
|
.B @pkgdatadir@/Themes/
|
||||||
Guess... ;-)
|
Guess... ;-)
|
||||||
|
|||||||
43
doc/wmiv.1
43
doc/wmiv.1
@@ -3,11 +3,14 @@
|
|||||||
wmiv \- quick image viewer using wrlib
|
wmiv \- quick image viewer using wrlib
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B wmiv
|
.B wmiv
|
||||||
.RI [ \,image(s)\/ | \,directory\/ ]
|
.RI [ \,image(s)\/ | \,directory\/ | \,archive\/]
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.TP
|
.TP
|
||||||
.B \-\-help
|
.B \-\-help
|
||||||
print help text
|
display this help
|
||||||
|
.TP
|
||||||
|
.B \-\-ignore-unknown
|
||||||
|
ignore unknown image format
|
||||||
.TP
|
.TP
|
||||||
.B \-\-version
|
.B \-\-version
|
||||||
print version
|
print version
|
||||||
@@ -19,21 +22,6 @@ zoom in
|
|||||||
[\-]
|
[\-]
|
||||||
zoom out
|
zoom out
|
||||||
.TP
|
.TP
|
||||||
[Esc]
|
|
||||||
actual size
|
|
||||||
.TP
|
|
||||||
[D]
|
|
||||||
launch diaporama mode
|
|
||||||
.TP
|
|
||||||
[L]
|
|
||||||
rotate image on the left
|
|
||||||
.TP
|
|
||||||
[Q]
|
|
||||||
quit
|
|
||||||
.TP
|
|
||||||
[R]
|
|
||||||
rotate image on the right
|
|
||||||
.TP
|
|
||||||
[▸]
|
[▸]
|
||||||
next image
|
next image
|
||||||
.TP
|
.TP
|
||||||
@@ -45,6 +33,27 @@ first image
|
|||||||
.TP
|
.TP
|
||||||
[▾]
|
[▾]
|
||||||
last image
|
last image
|
||||||
|
.TP
|
||||||
|
[Ctrl+C]
|
||||||
|
copy image to clipboard
|
||||||
|
.TP
|
||||||
|
[D]
|
||||||
|
start slideshow
|
||||||
|
.TP
|
||||||
|
[Esc]
|
||||||
|
actual size
|
||||||
|
.TP
|
||||||
|
[F]
|
||||||
|
toggle full-screen mode
|
||||||
|
.TP
|
||||||
|
[L]
|
||||||
|
rotate image on the left
|
||||||
|
.TP
|
||||||
|
[Q]
|
||||||
|
quit
|
||||||
|
.TP
|
||||||
|
[R]
|
||||||
|
rotate image on the right
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
.B wmiv
|
.B wmiv
|
||||||
is a part of Window Maker. It was written by David Maciejak.
|
is a part of Window Maker. It was written by David Maciejak.
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ AC_DEFUN_ONCE([WM_I18N_LANGUAGES],
|
|||||||
[AC_ARG_VAR([LINGUAS],
|
[AC_ARG_VAR([LINGUAS],
|
||||||
[list of language translations to support (I18N), use 'list' to get the list of supported languages, default: none])dnl
|
[list of language translations to support (I18N), use 'list' to get the list of supported languages, default: none])dnl
|
||||||
AC_DEFUN([WM_ALL_LANGUAGES],
|
AC_DEFUN([WM_ALL_LANGUAGES],
|
||||||
[m4_esyscmd([( ls wrlib/po/ ; ls WINGs/po/ ; ls po/ ; ls WPrefs.app/po/ ; ls util/po/ ) | sed -n -e '/po$/{s,\.po,,;p}' | sort -u | tr '\n' ' '])])dnl
|
[m4_esyscmd([( ls wrlib/po/ ; ls WINGs/po/ ; ls po/ ; ls WPrefs.app/po/ ; ls util/po/ ) | sed -n -e '/po$/{s,\.po,,;p;}' | sort -u | tr '\n' ' '])])dnl
|
||||||
dnl We 'divert' the macro to have it executed as soon as the option list have
|
dnl We 'divert' the macro to have it executed as soon as the option list have
|
||||||
dnl been processed, so the list of locales will be printed after the configure
|
dnl been processed, so the list of locales will be printed after the configure
|
||||||
dnl options have been parsed, but before any test have been run
|
dnl options have been parsed, but before any test have been run
|
||||||
@@ -66,11 +66,11 @@ AS_IF([test "x$LINGUAS" != "x"],
|
|||||||
supported_locales=""
|
supported_locales=""
|
||||||
|
|
||||||
# This is the list of locales that our archive currently supports
|
# This is the list of locales that our archive currently supports
|
||||||
wraster_locales=" m4_esyscmd([ls wrlib/po/ | sed -n '/po$/{s,.po,,;p}' | tr '\n' ' '])"
|
wraster_locales=" m4_esyscmd([ls wrlib/po/ | sed -n '/po$/{s,.po,,;p;}' | tr '\n' ' '])"
|
||||||
wings_locales=" m4_esyscmd([ls WINGs/po/ | sed -n '/po$/{s,.po,,;p}' | tr '\n' ' '])"
|
wings_locales=" m4_esyscmd([ls WINGs/po/ | sed -n '/po$/{s,.po,,;p;}' | tr '\n' ' '])"
|
||||||
wmaker_locales=" m4_esyscmd([ls po/ | sed -n '/po$/{s,.po,,;p}' | tr '\n' ' '])"
|
wmaker_locales=" m4_esyscmd([ls po/ | sed -n '/po$/{s,.po,,;p;}' | tr '\n' ' '])"
|
||||||
wprefs_locales=" m4_esyscmd([ls WPrefs.app/po/ | sed -n '/po$/{s,.po,,;p}' | tr '\n' ' '])"
|
wprefs_locales=" m4_esyscmd([ls WPrefs.app/po/ | sed -n '/po$/{s,.po,,;p;}' | tr '\n' ' '])"
|
||||||
util_locales=" m4_esyscmd([ls util/po/ | sed -n '/po$/{s,.po,,;p}' | tr '\n' ' '])"
|
util_locales=" m4_esyscmd([ls util/po/ | sed -n '/po$/{s,.po,,;p;}' | tr '\n' ' '])"
|
||||||
man_locales=" m4_esyscmd([ls doc/ | grep '^[a-z][a-z]\(_[A-Z][A-Z]\)*$' | tr '\n' ' '])"
|
man_locales=" m4_esyscmd([ls doc/ | grep '^[a-z][a-z]\(_[A-Z][A-Z]\)*$' | tr '\n' ' '])"
|
||||||
|
|
||||||
# If the LINGUAS is specified as a simple '*', then we enable all the languages
|
# If the LINGUAS is specified as a simple '*', then we enable all the languages
|
||||||
|
|||||||
@@ -113,6 +113,37 @@ AC_DEFUN_ONCE([WM_IMGFMT_CHECK_JPEG],
|
|||||||
]) dnl AC_DEFUN
|
]) dnl AC_DEFUN
|
||||||
|
|
||||||
|
|
||||||
|
# WM_IMGFMT_CHECK_JXL
|
||||||
|
# -------------------
|
||||||
|
#
|
||||||
|
# Check for JXL (JPEG XL) file support through 'libjxl'
|
||||||
|
# The check depends on variable 'enable_jxl' being either:
|
||||||
|
# yes - detect, fail if not found
|
||||||
|
# no - do not detect, disable support
|
||||||
|
# auto - detect, disable if not found
|
||||||
|
#
|
||||||
|
# When found, append appropriate stuff in GFXLIBS, and append info to
|
||||||
|
# the variable 'supported_gfx'
|
||||||
|
# When not found, append info to variable 'unsupported'
|
||||||
|
AC_DEFUN_ONCE([WM_IMGFMT_CHECK_JXL],
|
||||||
|
[WM_LIB_CHECK([JXL], [-ljxl], [JxlDecoderCreate], [$XLFLAGS $XLIBS],
|
||||||
|
[AC_COMPILE_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM(
|
||||||
|
[@%:@include <stdlib.h>
|
||||||
|
@%:@include <jxl/decode.h>],
|
||||||
|
[ JxlDecoder* dec = JxlDecoderCreate(NULL);
|
||||||
|
JxlDecoderDestroy(dec);])],
|
||||||
|
[],
|
||||||
|
[AS_ECHO([failed])
|
||||||
|
AS_ECHO(["$as_me: error: found $CACHEVAR but cannot compile header"])
|
||||||
|
AS_ECHO(["$as_me: error: - does header 'jxl/decode.h' exists? (is package 'libjxl-dev' missing?)"])
|
||||||
|
AS_ECHO(["$as_me: error: - version of header is not supported? (report to dev team)"])
|
||||||
|
AC_MSG_ERROR([JXL library is not usable, cannot continue])])
|
||||||
|
],
|
||||||
|
[supported_gfx], [GFXLIBS])dnl
|
||||||
|
]) dnl AC_DEFUN
|
||||||
|
|
||||||
|
|
||||||
# WM_IMGFMT_CHECK_PNG
|
# WM_IMGFMT_CHECK_PNG
|
||||||
# -------------------
|
# -------------------
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -232,3 +232,35 @@ AC_DEFUN_ONCE([WM_XEXT_CHECK_XRANDR],
|
|||||||
[supported_xext], [LIBXRANDR], [], [-])dnl
|
[supported_xext], [LIBXRANDR], [], [-])dnl
|
||||||
AC_SUBST([LIBXRANDR])dnl
|
AC_SUBST([LIBXRANDR])dnl
|
||||||
]) dnl AC_DEFUN
|
]) dnl AC_DEFUN
|
||||||
|
|
||||||
|
|
||||||
|
# WM_XEXT_CHECK_XKBFILE
|
||||||
|
# ---------------------
|
||||||
|
#
|
||||||
|
# Check for the XKB File extension library (libxkbfile)
|
||||||
|
# The check depends on variable 'enable_modelock' being either:
|
||||||
|
# yes - detect, fail if not found
|
||||||
|
# no - do not detect, disable support
|
||||||
|
#
|
||||||
|
# When found, append appropriate stuff in LIBXKBFILE, and append info to
|
||||||
|
# the variable 'supported_xext'
|
||||||
|
# When not found, generate an error because it's required for modelock
|
||||||
|
AC_DEFUN_ONCE([WM_XEXT_CHECK_XKBFILE],
|
||||||
|
[WM_LIB_CHECK([XKBFile], [-lxkbfile], [XkbRF_GetNamesProp], [$XLIBS],
|
||||||
|
[wm_save_CFLAGS="$CFLAGS"
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([dnl
|
||||||
|
@%:@include <stdio.h>
|
||||||
|
@%:@include <X11/Xlib.h>
|
||||||
|
@%:@include <X11/XKBlib.h>
|
||||||
|
@%:@include <X11/extensions/XKBfile.h>
|
||||||
|
@%:@include <X11/extensions/XKBrules.h>
|
||||||
|
], [dnl
|
||||||
|
Display *dpy = NULL;
|
||||||
|
XkbRF_VarDefsRec vd;
|
||||||
|
XkbRF_GetNamesProp(dpy, NULL, &vd);])],
|
||||||
|
[],
|
||||||
|
[AC_MSG_ERROR([found $CACHEVAR but cannot compile using XKBfile header])])
|
||||||
|
CFLAGS="$wm_save_CFLAGS"],
|
||||||
|
[supported_xext], [LIBXKBFILE], [enable_modelock], [-])dnl
|
||||||
|
AC_SUBST([LIBXKBFILE])dnl
|
||||||
|
]) dnl AC_DEFUN
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ bs.po Bosnian Ahmet Mulalic <am@lugzdk.ba>
|
|||||||
hy.po Armenian Norayr Chilignaryan <chnorik@gmail.com>
|
hy.po Armenian Norayr Chilignaryan <chnorik@gmail.com>
|
||||||
nl.po Dutch Alwin <translations@ziggo.nl>
|
nl.po Dutch Alwin <translations@ziggo.nl>
|
||||||
fy.po Frisian Alwin <translations@ziggo.nl>
|
fy.po Frisian Alwin <translations@ziggo.nl>
|
||||||
sr.po Serbian Strahinya Radich <contact@strahinja.org>
|
sr.po Serbian Strahinya Radich <sr@strahinja.org>
|
||||||
|
|
||||||
|
|
||||||
Some translations are based on previous translations by other people.
|
Some translations are based on previous translations by other people.
|
||||||
|
|||||||
5
po/be.po
5
po/be.po
@@ -10,6 +10,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2002-10-17 19:02+0300\n"
|
"PO-Revision-Date: 2002-10-17 19:02+0300\n"
|
||||||
"Last-Translator: Ihar Viarheichyk <iverg@mail.ru>\n"
|
"Last-Translator: Ihar Viarheichyk <iverg@mail.ru>\n"
|
||||||
"Language-Team: Belarusian <be@li.org>\n"
|
"Language-Team: Belarusian <be@li.org>\n"
|
||||||
|
"Language: be\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -472,7 +473,7 @@ msgstr "Window Maker атрымаў сігнал %i."
|
|||||||
#: ../src/dialog.c:1632
|
#: ../src/dialog.c:1632
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Гэты крытычны збой магчыма вызваны памылкамі ў WindowMaker."
|
" Гэты крытычны збой магчыма вызваны памылкамі ў WindowMaker."
|
||||||
@@ -1433,7 +1434,7 @@ msgstr "не магчыма запусціць іншы ваконны мене
|
|||||||
|
|
||||||
#: ../src/startup.c:419
|
#: ../src/startup.c:419
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Гэты крытычны збой магчыма вызваны памылкамі ў WindowMaker."
|
" Гэты крытычны збой магчыма вызваны памылкамі ў WindowMaker."
|
||||||
|
|||||||
5
po/bg.po
5
po/bg.po
@@ -12,6 +12,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2003-02-09 14:21+0200\n"
|
"PO-Revision-Date: 2003-02-09 14:21+0200\n"
|
||||||
"Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n"
|
"Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n"
|
||||||
"Language-Team: Bulgarian <dict@linux.zonebg.com>\n"
|
"Language-Team: Bulgarian <dict@linux.zonebg.com>\n"
|
||||||
|
"Language: bg\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -602,7 +603,7 @@ msgstr "Уиндоу Мейкър получи сигнал %i."
|
|||||||
#: ../src/dialog.c:1632
|
#: ../src/dialog.c:1632
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr "Възникналата критична грешка вероятно се дължи на програмен дефект. Моля попълнете формуляра от файла BUGFORM и го изпратете на адрес %s."
|
msgstr "Възникналата критична грешка вероятно се дължи на програмен дефект. Моля попълнете формуляра от файла BUGFORM и го изпратете на адрес %s."
|
||||||
|
|
||||||
@@ -1793,7 +1794,7 @@ msgstr ""
|
|||||||
# ../src/startup.c:352
|
# ../src/startup.c:352
|
||||||
#: ../src/startup.c:419
|
#: ../src/startup.c:419
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr "възникна критична грешка, вероятно дължаща се на програмен дефект. Моля попълнете формуляра от файла BUGFORM и ни уведомете "
|
msgstr "възникна критична грешка, вероятно дължаща се на програмен дефект. Моля попълнете формуляра от файла BUGFORM и ни уведомете "
|
||||||
|
|
||||||
|
|||||||
1
po/bs.po
1
po/bs.po
@@ -8,6 +8,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2004-08-30 00:23+0200\n"
|
"PO-Revision-Date: 2004-08-30 00:23+0200\n"
|
||||||
"Last-Translator: Ahmet Mulalić <am@lugzdk.ba>\n"
|
"Last-Translator: Ahmet Mulalić <am@lugzdk.ba>\n"
|
||||||
"Language-Team: Bosanski <lugzdk@lugzdk.ba>\n"
|
"Language-Team: Bosanski <lugzdk@lugzdk.ba>\n"
|
||||||
|
"Language: bs\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
5
po/ca.po
5
po/ca.po
@@ -14,6 +14,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2003-09-16 23:13+0200\n"
|
"PO-Revision-Date: 2003-09-16 23:13+0200\n"
|
||||||
"Last-Translator: Ernest Adrogué <eadrogue@gmx.net>\n"
|
"Last-Translator: Ernest Adrogué <eadrogue@gmx.net>\n"
|
||||||
"Language-Team: Catalan <ca@dodds.net>\n"
|
"Language-Team: Catalan <ca@dodds.net>\n"
|
||||||
|
"Language: ca\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -494,7 +495,7 @@ msgstr "Window Maker ha rebut un senyal %i."
|
|||||||
#: ../src/dialog.c:1632
|
#: ../src/dialog.c:1632
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Aquest error fatal probablement ha estat causat per un \"bug\". Si us plau, "
|
" Aquest error fatal probablement ha estat causat per un \"bug\". Si us plau, "
|
||||||
@@ -1471,7 +1472,7 @@ msgstr "no s'ha pogut iniciar cap gestor de finestres alternatiu. S'avorta."
|
|||||||
|
|
||||||
#: ../src/startup.c:419
|
#: ../src/startup.c:419
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"s'ha produït un error fatal, probablement a causa d'un \"bug\". Si us plau, "
|
"s'ha produït un error fatal, probablement a causa d'un \"bug\". Si us plau, "
|
||||||
|
|||||||
5
po/cs.po
5
po/cs.po
@@ -15,6 +15,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2001-10-14 20:29+53:00\n"
|
"PO-Revision-Date: 2001-10-14 20:29+53:00\n"
|
||||||
"Last-Translator: Jiří Hnídek <jiri.hnidek@vslib.cz>\n"
|
"Last-Translator: Jiří Hnídek <jiri.hnidek@vslib.cz>\n"
|
||||||
"Language-Team: czech <cs@li.org>\n"
|
"Language-Team: czech <cs@li.org>\n"
|
||||||
|
"Language: cs\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: unknown\n"
|
"Content-Transfer-Encoding: unknown\n"
|
||||||
@@ -477,7 +478,7 @@ msgstr "Window Maker přijal signál %i."
|
|||||||
#: ../src/dialog.c:1632
|
#: ../src/dialog.c:1632
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Tato závažná chyba se vyskytla pravděpodobně v důsledku chyby v kódu Window "
|
" Tato závažná chyba se vyskytla pravděpodobně v důsledku chyby v kódu Window "
|
||||||
@@ -1392,7 +1393,7 @@ msgstr "alternativního správce oken nelze odstartovat. Konec."
|
|||||||
|
|
||||||
#: ../src/startup.c:419
|
#: ../src/startup.c:419
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"fatální chyba, pravděpodobně chyba ve Window Makeru. Prosím vyplňte soubor "
|
"fatální chyba, pravděpodobně chyba ve Window Makeru. Prosím vyplňte soubor "
|
||||||
|
|||||||
5
po/da.po
5
po/da.po
@@ -9,6 +9,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2002-02-20 20:56+0100\n"
|
"PO-Revision-Date: 2002-02-20 20:56+0100\n"
|
||||||
"Last-Translator: Birger Langkjer <birger.langkjer@image.dk>\n"
|
"Last-Translator: Birger Langkjer <birger.langkjer@image.dk>\n"
|
||||||
"Language-Team: Danish <sslug-locale@sslug.dk>\n"
|
"Language-Team: Danish <sslug-locale@sslug.dk>\n"
|
||||||
|
"Language: da\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
@@ -544,7 +545,7 @@ msgstr "Window Maker modtog signal %i"
|
|||||||
# ../src/dialog.c:1450
|
# ../src/dialog.c:1450
|
||||||
#: ../src/dialog.c:1790
|
#: ../src/dialog.c:1790
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"en fatal fejl er opstået, sikkert pga. en bug. Udfyld venligst den vedlagte "
|
"en fatal fejl er opstået, sikkert pga. en bug. Udfyld venligst den vedlagte "
|
||||||
@@ -1685,7 +1686,7 @@ msgstr "det lykkedes ikke at starte alternativ vindueshåndtering. Afbryder."
|
|||||||
# ../src/startup.c:349
|
# ../src/startup.c:349
|
||||||
#: ../src/startup.c:419
|
#: ../src/startup.c:419
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"en fatal fejl er opstået, sikkert pga. en bug. Udfyld venligst den vedlagte "
|
"en fatal fejl er opstået, sikkert pga. en bug. Udfyld venligst den vedlagte "
|
||||||
|
|||||||
3
po/de.po
3
po/de.po
@@ -16,6 +16,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2004-11-08 22:58+0100\n"
|
"PO-Revision-Date: 2004-11-08 22:58+0100\n"
|
||||||
"Last-Translator: shlomme@gmx.net\n"
|
"Last-Translator: shlomme@gmx.net\n"
|
||||||
"Language-Team: German\n"
|
"Language-Team: German\n"
|
||||||
|
"Language: de\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -471,7 +472,7 @@ msgstr "Window Maker erhielt Signal %i"
|
|||||||
|
|
||||||
#: ../src/dialog.c:1602
|
#: ../src/dialog.c:1602
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Dieser fatale Fehler trat möglicherweise wegen eines Bugs auf. Bitte füllen "
|
" Dieser fatale Fehler trat möglicherweise wegen eines Bugs auf. Bitte füllen "
|
||||||
|
|||||||
3
po/el.po
3
po/el.po
@@ -10,6 +10,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 1999-09-04 01:39+0300\n"
|
"PO-Revision-Date: 1999-09-04 01:39+0300\n"
|
||||||
"Last-Translator: Nikolaos Papagrigoriou <papanikos@freemail.gr>\n"
|
"Last-Translator: Nikolaos Papagrigoriou <papanikos@freemail.gr>\n"
|
||||||
"Language-Team: Greek\n"
|
"Language-Team: Greek\n"
|
||||||
|
"Language: el\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
@@ -1173,7 +1174,7 @@ msgstr "αποτυχία εκκίνησης εναλλακτικού διαχε
|
|||||||
|
|
||||||
#: ../src/startup.c:349
|
#: ../src/startup.c:349
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
2
po/es.po
2
po/es.po
@@ -491,7 +491,7 @@ msgstr "Window Maker recibió la señal %i."
|
|||||||
|
|
||||||
#: ../src/dialog.c:1576
|
#: ../src/dialog.c:1576
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Este error fatal ocurrió probablemente debido a un fallo.\n"
|
" Este error fatal ocurrió probablemente debido a un fallo.\n"
|
||||||
|
|||||||
2
po/et.po
2
po/et.po
@@ -487,7 +487,7 @@ msgstr "Window Maker võttis vastu signaali %i."
|
|||||||
|
|
||||||
#: ../src/dialog.c:1573
|
#: ../src/dialog.c:1573
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" See fataalviga on arvatavasti põhjustatud programmi enese veast. Palun "
|
" See fataalviga on arvatavasti põhjustatud programmi enese veast. Palun "
|
||||||
|
|||||||
5
po/fi.po
5
po/fi.po
@@ -13,6 +13,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2001-09-03 21:56+03:00\n"
|
"PO-Revision-Date: 2001-09-03 21:56+03:00\n"
|
||||||
"Last-Translator: Tomi Kajala <tomi@iki.fi>\n"
|
"Last-Translator: Tomi Kajala <tomi@iki.fi>\n"
|
||||||
"Language-Team: Finnish <fi@li.org>\n"
|
"Language-Team: Finnish <fi@li.org>\n"
|
||||||
|
"Language: fi\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
@@ -465,7 +466,7 @@ msgstr "Window Maker vastaanotti signaalin %i."
|
|||||||
|
|
||||||
#: ../src/dialog.c:1707
|
#: ../src/dialog.c:1707
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Tämä vakava virhe tapahtui luultavasti bugin johdosta. Ole hyvä ja täytä "
|
" Tämä vakava virhe tapahtui luultavasti bugin johdosta. Ole hyvä ja täytä "
|
||||||
@@ -1389,7 +1390,7 @@ msgstr "vaihtoehtoisen ikkunamanagerin käynnistys epäonnistui. Keskeytetään.
|
|||||||
|
|
||||||
#: ../src/startup.c:412
|
#: ../src/startup.c:412
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"vakava virhe on tapahtunut - luultavasti bugin johdosta. Ole hyvä ja täytä "
|
"vakava virhe on tapahtunut - luultavasti bugin johdosta. Ole hyvä ja täytä "
|
||||||
|
|||||||
3
po/fr.po
3
po/fr.po
@@ -12,6 +12,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2002-01-21 07:08+0100\n"
|
"PO-Revision-Date: 2002-01-21 07:08+0100\n"
|
||||||
"Last-Translator: Antoine Hulin <antoine.hulin@origan.fdn.org>\n"
|
"Last-Translator: Antoine Hulin <antoine.hulin@origan.fdn.org>\n"
|
||||||
"Language-Team: French <fr@li.org>\n"
|
"Language-Team: French <fr@li.org>\n"
|
||||||
|
"Language: fr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
@@ -481,7 +482,7 @@ msgstr "Window Maker a reçu le signal %i."
|
|||||||
#: ../src/dialog.c:1632
|
#: ../src/dialog.c:1632
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Cette erreur est probablement due à un bogue. Remplissez le formulaire "
|
" Cette erreur est probablement due à un bogue. Remplissez le formulaire "
|
||||||
|
|||||||
8
po/fy.po
8
po/fy.po
@@ -2086,11 +2086,3 @@ msgstr "toets %s (0x%x) generearret sawol %s as %s, wat ûnsinnich is"
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "Can't convert keymask 0x%04X to a shortcut label"
|
msgid "Can't convert keymask 0x%04X to a shortcut label"
|
||||||
msgstr "Kin 'keymask' 0x%04X net omsette nei fluchtoetsbeneaming"
|
msgstr "Kin 'keymask' 0x%04X net omsette nei fluchtoetsbeneaming"
|
||||||
|
|
||||||
# Keep next entry for wmaker-0.95.7
|
|
||||||
msgid ""
|
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
|
||||||
"BUGFORM and report it to %s."
|
|
||||||
msgstr ""
|
|
||||||
" Dizze ûnwerstelbere flater trede mooglik op troch in bug. Folje a.j.w. "
|
|
||||||
"bygeand BUGFORM yn, en rapportearje it oan %s."
|
|
||||||
|
|||||||
5
po/gl.po
5
po/gl.po
@@ -14,6 +14,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2000-10-15 17:57+0200\n"
|
"PO-Revision-Date: 2000-10-15 17:57+0200\n"
|
||||||
"Last-Translator: Jesús Bravo Álvarez <jba@pobox.com>\n"
|
"Last-Translator: Jesús Bravo Álvarez <jba@pobox.com>\n"
|
||||||
"Language-Team: Galician <trasno@ceu.fi.udc.es>\n"
|
"Language-Team: Galician <trasno@ceu.fi.udc.es>\n"
|
||||||
|
"Language: gl\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -359,7 +360,7 @@ msgstr "O Window Maker recibiu un sinal %i."
|
|||||||
|
|
||||||
#: ../src/dialog.c:1564
|
#: ../src/dialog.c:1564
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Este erro grave ocorreu probablemente por mor dun erro do programa. Por "
|
" Este erro grave ocorreu probablemente por mor dun erro do programa. Por "
|
||||||
@@ -1240,7 +1241,7 @@ msgstr "fallou o inicio dun xestor de fiestras alternativo. Abortando."
|
|||||||
|
|
||||||
#: ../src/startup.c:352
|
#: ../src/startup.c:352
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ocorreu un erro moi grave, probablemente por mor dun erro de programación. "
|
"ocorreu un erro moi grave, probablemente por mor dun erro de programación. "
|
||||||
|
|||||||
1
po/hr.po
1
po/hr.po
@@ -8,6 +8,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 1998-08-18 16:28:19+0200\n"
|
"PO-Revision-Date: 1998-08-18 16:28:19+0200\n"
|
||||||
"Last-Translator: Toni Bilić <tbilic@oliver.efos.hr>\n"
|
"Last-Translator: Toni Bilić <tbilic@oliver.efos.hr>\n"
|
||||||
"Language-Team: Croatian\n"
|
"Language-Team: Croatian\n"
|
||||||
|
"Language: hr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|||||||
6
po/hu.po
6
po/hu.po
@@ -11,7 +11,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2014-02-18 00:23+0100\n"
|
"PO-Revision-Date: 2014-02-18 00:23+0100\n"
|
||||||
"Last-Translator: BALATON Zoltán <balaton@eik.bme.hu>\n"
|
"Last-Translator: BALATON Zoltán <balaton@eik.bme.hu>\n"
|
||||||
"Language-Team: Hungarian\n"
|
"Language-Team: Hungarian\n"
|
||||||
"Language: \n"
|
"Language: hu\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -491,7 +491,7 @@ msgstr "A Window Maker %i jelzést kapott."
|
|||||||
|
|
||||||
#: ../../wmaker-crm/src/dialog.c:1599
|
#: ../../wmaker-crm/src/dialog.c:1599
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr " Ezt a végzetes hibát valószínűleg egy programozási hiba okozta. Légy szíves töltsd ki a mellékelt BUGFORM kérdőívet és küldd el a %s e-mail címre!"
|
msgstr " Ezt a végzetes hibát valószínűleg egy programozási hiba okozta. Légy szíves töltsd ki a mellékelt BUGFORM kérdőívet és küldd el a %s e-mail címre!"
|
||||||
|
|
||||||
@@ -800,7 +800,7 @@ msgstr "a beállítás adatbázist tartalmazó egységet lecsatolták. \"--stati
|
|||||||
msgid "Inotify: Reading config files in defaults database."
|
msgid "Inotify: Reading config files in defaults database."
|
||||||
msgstr "Inotify: újraolvasom a konfigurációs fájlokat a beállítás adatbázisból."
|
msgstr "Inotify: újraolvasom a konfigurációs fájlokat a beállítás adatbázisból."
|
||||||
|
|
||||||
#. an error has occured
|
#. an error has occurred
|
||||||
#: ../../wmaker-crm/src/event.c:391
|
#: ../../wmaker-crm/src/event.c:391
|
||||||
msgid ""
|
msgid ""
|
||||||
"select failed. The inotify instance will be closed. Changes to the defaults "
|
"select failed. The inotify instance will be closed. Changes to the defaults "
|
||||||
|
|||||||
3
po/it.po
3
po/it.po
@@ -11,6 +11,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2005-03-04 16:33+0000\n"
|
"PO-Revision-Date: 2005-03-04 16:33+0000\n"
|
||||||
"Last-Translator: Marco Colombo <m.colombo@ed.ac.uk>\n"
|
"Last-Translator: Marco Colombo <m.colombo@ed.ac.uk>\n"
|
||||||
"Language-Team: Italian <tp@lists.linux.it@li.org>\n"
|
"Language-Team: Italian <tp@lists.linux.it@li.org>\n"
|
||||||
|
"Language: it\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -526,7 +527,7 @@ msgstr "Window Maker ha ricevuto il segnale %i."
|
|||||||
|
|
||||||
#: ../src/dialog.c:1768
|
#: ../src/dialog.c:1768
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Questo errore fatale è probabilmente dovuto ad un bug. Si prega di "
|
" Questo errore fatale è probabilmente dovuto ad un bug. Si prega di "
|
||||||
|
|||||||
2
po/ja.po
2
po/ja.po
@@ -460,7 +460,7 @@ msgstr "Window Maker は シグナル %i を受けました."
|
|||||||
|
|
||||||
#: ../src/dialog.c:1576
|
#: ../src/dialog.c:1576
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"この致命的なエラーはバグによるものかもしれません. 同梱のバグフォームを使って "
|
"この致命的なエラーはバグによるものかもしれません. 同梱のバグフォームを使って "
|
||||||
|
|||||||
5
po/ko.po
5
po/ko.po
@@ -12,6 +12,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2013-08-12 23:57+0900\n"
|
"PO-Revision-Date: 2013-08-12 23:57+0900\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Korean\n"
|
"Language-Team: Korean\n"
|
||||||
|
"Language: ko\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -471,7 +472,7 @@ msgstr "윈도우 메이커가 %i 신호를 받음."
|
|||||||
|
|
||||||
#: ../src/dialog.c:1596
|
#: ../src/dialog.c:1596
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"버그로 인해 치명적인 오류가 발생했습니다. BUGFORM을 작성하여 "
|
"버그로 인해 치명적인 오류가 발생했습니다. BUGFORM을 작성하여 "
|
||||||
@@ -1953,7 +1954,7 @@ msgstr "마지막으로 사용됨"
|
|||||||
#~ msgstr "대체용 창 관리자를 실행 실패. 종료."
|
#~ msgstr "대체용 창 관리자를 실행 실패. 종료."
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "a fatal error has occured, probably due to a bug. Please fill the "
|
#~ "a fatal error has occurred, probably due to a bug. Please fill the "
|
||||||
#~ "included BUGFORM and report it."
|
#~ "included BUGFORM and report it."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "치명적인 오류 발생, 아마도 버그인 것 같습니다. BUGFORM을 작성해 보내주시"
|
#~ "치명적인 오류 발생, 아마도 버그인 것 같습니다. BUGFORM을 작성해 보내주시"
|
||||||
|
|||||||
5
po/ms.po
5
po/ms.po
@@ -10,6 +10,7 @@ msgstr ""
|
|||||||
"Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com>\n"
|
"Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com>\n"
|
||||||
"Language-Team: Projek Gabai (Bahasa Melayu) <gabai-penyumbang@lists."
|
"Language-Team: Projek Gabai (Bahasa Melayu) <gabai-penyumbang@lists."
|
||||||
"sourceforge.net>\n"
|
"sourceforge.net>\n"
|
||||||
|
"Language: ms\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -456,7 +457,7 @@ msgstr "Window Maker menerima isyarat %i."
|
|||||||
|
|
||||||
#: ../src/dialog.c:1786
|
#: ../src/dialog.c:1786
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Ralat fatal ini berlaku kemungkinan disebabkan pepijat. Sila ini BUGFORM "
|
" Ralat fatal ini berlaku kemungkinan disebabkan pepijat. Sila ini BUGFORM "
|
||||||
@@ -1414,7 +1415,7 @@ msgstr "gagl menghidupkan pengurus tetingkap lain. Diabaikan."
|
|||||||
|
|
||||||
#: ../src/startup.c:419
|
#: ../src/startup.c:419
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ralat fatal berlaku, mungkin kerana pepijat. Sila ini BUGFORM yang "
|
"ralat fatal berlaku, mungkin kerana pepijat. Sila ini BUGFORM yang "
|
||||||
|
|||||||
8
po/nl.po
8
po/nl.po
@@ -2090,11 +2090,3 @@ msgstr "toets %s (0x%x) genereert zowel %s als %s, wat onzinnig is"
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "Can't convert keymask 0x%04X to a shortcut label"
|
msgid "Can't convert keymask 0x%04X to a shortcut label"
|
||||||
msgstr "Kan 'keymask' 0x%04X niet omzetten naar sneltoetsbenaming"
|
msgstr "Kan 'keymask' 0x%04X niet omzetten naar sneltoetsbenaming"
|
||||||
|
|
||||||
# Keep next entry for wmaker-0.95.7
|
|
||||||
msgid ""
|
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
|
||||||
"BUGFORM and report it to %s."
|
|
||||||
msgstr ""
|
|
||||||
" Deze onherstelbare fout trad mogelijk op door 'n bug. Vul a.u.b. "
|
|
||||||
"bijgaand BUGFORM in, en rapporteer 't aan %s."
|
|
||||||
|
|||||||
1
po/no.po
1
po/no.po
@@ -9,6 +9,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 1998-05-23 H12:54+0200\n"
|
"PO-Revision-Date: 1998-05-23 H12:54+0200\n"
|
||||||
"Last-Translator: Marcus Ramberg <draven@mo.himolde.no>\n"
|
"Last-Translator: Marcus Ramberg <draven@mo.himolde.no>\n"
|
||||||
"Language-Team: Norwegian \n"
|
"Language-Team: Norwegian \n"
|
||||||
|
"Language: no\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
|
|||||||
3
po/pl.po
3
po/pl.po
@@ -12,6 +12,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2003-04-15 20:21+0200\n"
|
"PO-Revision-Date: 2003-04-15 20:21+0200\n"
|
||||||
"Last-Translator: Piotr Dembiński <pdemb@fanthom.math.put.poznan.pl>\n"
|
"Last-Translator: Piotr Dembiński <pdemb@fanthom.math.put.poznan.pl>\n"
|
||||||
"Language-Team: Polish <pl@li.org>\n"
|
"Language-Team: Polish <pl@li.org>\n"
|
||||||
|
"Language: pl\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
@@ -982,7 +983,7 @@ msgid "crashed while trying to do some post-crash cleanup. Aborting immediatelly
|
|||||||
msgstr "załamanie podczas próby uporządkowania po załamaniu. Wyjście awaryjne."
|
msgstr "załamanie podczas próby uporządkowania po załamaniu. Wyjście awaryjne."
|
||||||
|
|
||||||
#: ../src/startup.c:304
|
#: ../src/startup.c:304
|
||||||
msgid "a fatal error has occured, probably due to a bug. Please fill the included BUGFORM and report it."
|
msgid "a fatal error has occurred, probably due to a bug. Please fill the included BUGFORM and report it."
|
||||||
msgstr "wystąpił poważny błąd, prawdopodobnie pluskwa. Prosimy o wypełnienie formularza BUGFORM i wysłanie go do nas."
|
msgstr "wystąpił poważny błąd, prawdopodobnie pluskwa. Prosimy o wypełnienie formularza BUGFORM i wysłanie go do nas."
|
||||||
|
|
||||||
#. restart another window manager so that the X session doesn't
|
#. restart another window manager so that the X session doesn't
|
||||||
|
|||||||
5
po/pt.po
5
po/pt.po
@@ -12,6 +12,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2000-06-06 14:11-03:00\n"
|
"PO-Revision-Date: 2000-06-06 14:11-03:00\n"
|
||||||
"Last-Translator: Marcia Norie Nakaza <norie@conectiva.com.br>\n"
|
"Last-Translator: Marcia Norie Nakaza <norie@conectiva.com.br>\n"
|
||||||
"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br> \n"
|
"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br> \n"
|
||||||
|
"Language: pt\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
@@ -352,7 +353,7 @@ msgstr "O Window Maker recebeu o sinal %i."
|
|||||||
|
|
||||||
#: ../src/dialog.c:1564
|
#: ../src/dialog.c:1564
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Este erro fatal ocorreu provavelmente devido a uma falha.\n"
|
" Este erro fatal ocorreu provavelmente devido a uma falha.\n"
|
||||||
@@ -1230,7 +1231,7 @@ msgstr "tentativa de iniciar gerenciador alternativo falhou. Abortando."
|
|||||||
|
|
||||||
#: ../src/startup.c:352
|
#: ../src/startup.c:352
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"um erro fatal ocorreu, provavelmente devido a uma falha. Por favor preencha "
|
"um erro fatal ocorreu, provavelmente devido a uma falha. Por favor preencha "
|
||||||
|
|||||||
1
po/ro.po
1
po/ro.po
@@ -6,6 +6,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 1998-09-08 22:00:00-0300\n"
|
"PO-Revision-Date: 1998-09-08 22:00:00-0300\n"
|
||||||
"Last-Translator: AndreiVuta(gigi_man@manag.pub.ro)\n"
|
"Last-Translator: AndreiVuta(gigi_man@manag.pub.ro)\n"
|
||||||
"Language-Team: Romanian \n"
|
"Language-Team: Romanian \n"
|
||||||
|
"Language: ro\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
|
|||||||
5
po/ru.po
5
po/ru.po
@@ -16,6 +16,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2002-10-04 08:56+0300\n"
|
"PO-Revision-Date: 2002-10-04 08:56+0300\n"
|
||||||
"Last-Translator: awn@bcs.zp.ua\n"
|
"Last-Translator: awn@bcs.zp.ua\n"
|
||||||
"Language-Team: Russian\n"
|
"Language-Team: Russian\n"
|
||||||
|
"Language: ru\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -487,7 +488,7 @@ msgstr "Window Maker: получен сигнал %i."
|
|||||||
#: ../src/dialog.c:1632
|
#: ../src/dialog.c:1632
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Эта критическая ошибка, возможно, является результатом ошибки в программе. "
|
" Эта критическая ошибка, возможно, является результатом ошибки в программе. "
|
||||||
@@ -1438,7 +1439,7 @@ msgstr "не удалось запустить альтернативный ди
|
|||||||
|
|
||||||
#: ../src/startup.c:419
|
#: ../src/startup.c:419
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"возникла критическая ошибка. Возможно, это результат ошибки в программе. "
|
"возникла критическая ошибка. Возможно, это результат ошибки в программе. "
|
||||||
|
|||||||
5
po/sk.po
5
po/sk.po
@@ -21,6 +21,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2001-12-20 03:53+0100\n"
|
"PO-Revision-Date: 2001-12-20 03:53+0100\n"
|
||||||
"Last-Translator: Jan \"judas\" Tomka <judas@linux.sk>\n"
|
"Last-Translator: Jan \"judas\" Tomka <judas@linux.sk>\n"
|
||||||
"Language-Team: Slovak <sk@li.org>\n"
|
"Language-Team: Slovak <sk@li.org>\n"
|
||||||
|
"Language: sk\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -498,7 +499,7 @@ msgstr "Window Maker prijal signál %i."
|
|||||||
#: ../src/dialog.c:1632
|
#: ../src/dialog.c:1632
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Táto fatálna chyba sa vyskytla "
|
"Táto fatálna chyba sa vyskytla "
|
||||||
@@ -1480,7 +1481,7 @@ msgstr "nepodarilo sa spustiť alternatívny manažér okien. Koniec."
|
|||||||
|
|
||||||
#: ../src/startup.c:419
|
#: ../src/startup.c:419
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"fatálna chyba nastala pravdepodobne v dôsledku chyby vo Window Makery. "
|
"fatálna chyba nastala pravdepodobne v dôsledku chyby vo Window Makery. "
|
||||||
|
|||||||
4
po/sr.po
4
po/sr.po
@@ -3,7 +3,7 @@
|
|||||||
# 1998-2006 Dan Pascu
|
# 1998-2006 Dan Pascu
|
||||||
# 2013-2020 Window Maker Developers Team
|
# 2013-2020 Window Maker Developers Team
|
||||||
# This file is distributed under the same license as the Window Maker package.
|
# This file is distributed under the same license as the Window Maker package.
|
||||||
# Strahinya Radich (Страхиња Радић) <contact@strahinja.org>, 2023.
|
# Strahinya Radich (Страхиња Радић) <sr@strahinja.org>, 2023.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -11,7 +11,7 @@ msgstr ""
|
|||||||
"Report-Msgid-Bugs-To: wmaker-dev@googlegroups.com\n"
|
"Report-Msgid-Bugs-To: wmaker-dev@googlegroups.com\n"
|
||||||
"POT-Creation-Date: 2023-11-02 19:22+0100\n"
|
"POT-Creation-Date: 2023-11-02 19:22+0100\n"
|
||||||
"PO-Revision-Date: 2023-11-02 19:51+0100\n"
|
"PO-Revision-Date: 2023-11-02 19:51+0100\n"
|
||||||
"Last-Translator: Страхиња Радић <contact@strahinja.org>\n"
|
"Last-Translator: Страхиња Радић <sr@strahinja.org>\n"
|
||||||
"Language-Team: Serbian <sr@li.org>\n"
|
"Language-Team: Serbian <sr@li.org>\n"
|
||||||
"Language: sr\n"
|
"Language: sr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
|||||||
1
po/sv.po
1
po/sv.po
@@ -7,6 +7,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 1997-06-02 18:29:09-0300\n"
|
"PO-Revision-Date: 1997-06-02 18:29:09-0300\n"
|
||||||
"Last-Translator: John <forgoil@rsn.hk-r.se>\n"
|
"Last-Translator: John <forgoil@rsn.hk-r.se>\n"
|
||||||
"Language-Team: Swedish \n"
|
"Language-Team: Swedish \n"
|
||||||
|
"Language: sv\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
|
|||||||
1
po/tr.po
1
po/tr.po
@@ -4,6 +4,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 1998-03-12 18:29:09+EET\n"
|
"PO-Revision-Date: 1998-03-12 18:29:09+EET\n"
|
||||||
"Last-Translator: KGF <kgf@wpi.edu>\n"
|
"Last-Translator: KGF <kgf@wpi.edu>\n"
|
||||||
"Language-Team: Turkish \n"
|
"Language-Team: Turkish \n"
|
||||||
|
"Language: tr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
|
|||||||
5
po/uk.po
5
po/uk.po
@@ -5,6 +5,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2005-09-06 08:56+0300\n"
|
"PO-Revision-Date: 2005-09-06 08:56+0300\n"
|
||||||
"Last-Translator: Victor Forsyuk <victor@ksi-linux.com>\n"
|
"Last-Translator: Victor Forsyuk <victor@ksi-linux.com>\n"
|
||||||
"Language-Team: KSI Linux Ukrainian <uk@ksi-linux.com>\n"
|
"Language-Team: KSI Linux Ukrainian <uk@ksi-linux.com>\n"
|
||||||
|
"Language: uk\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -479,7 +480,7 @@ msgstr "Window Maker: отримано сигнал %i."
|
|||||||
|
|
||||||
#: ../src/dialog.c:1790
|
#: ../src/dialog.c:1790
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" Ця критична помилка, можливо, є результатом помилки в програмі. Будь ласка, "
|
" Ця критична помилка, можливо, є результатом помилки в програмі. Будь ласка, "
|
||||||
@@ -1448,7 +1449,7 @@ msgstr "не вдалось запустити альтернативний ме
|
|||||||
|
|
||||||
#: ../src/startup.c:419
|
#: ../src/startup.c:419
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"виникла критична помилка. Можливо, це результат помилки в програмі. Будь "
|
"виникла критична помилка. Можливо, це результат помилки в програмі. Будь "
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 1999-07-05 21:30+0800\n"
|
"PO-Revision-Date: 1999-07-05 21:30+0800\n"
|
||||||
"Last-Translator: Wang Jian <larkw@263.net>\n"
|
"Last-Translator: Wang Jian <larkw@263.net>\n"
|
||||||
"Language-Team: chinese <zh@li.org>\n"
|
"Language-Team: chinese <zh@li.org>\n"
|
||||||
|
"Language: zh_CN\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
@@ -300,7 +301,7 @@ msgstr "Window Maker收到信号%i."
|
|||||||
|
|
||||||
#: ../src/dialog.c:1450
|
#: ../src/dialog.c:1450
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"发生一个致命错误,也许是因为一个 bug.请填写好软件中包含的 BUGFORM 并向"
|
"发生一个致命错误,也许是因为一个 bug.请填写好软件中包含的 BUGFORM 并向"
|
||||||
@@ -1163,7 +1164,7 @@ msgstr "无法启动替代的窗口管理器.中止."
|
|||||||
|
|
||||||
#: ../src/startup.c:349
|
#: ../src/startup.c:349
|
||||||
msgid ""
|
msgid ""
|
||||||
"a fatal error has occured, probably due to a bug. Please fill the included "
|
"a fatal error has occurred, probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it."
|
"BUGFORM and report it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"发生一个致命错误,也许是因为一个 bug.请填写好软件中包含的 BUGFORM 并报告 bug."
|
"发生一个致命错误,也许是因为一个 bug.请填写好软件中包含的 BUGFORM 并报告 bug."
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ msgstr ""
|
|||||||
"PO-Revision-Date: 2005-01-11 17:45+0800\n"
|
"PO-Revision-Date: 2005-01-11 17:45+0800\n"
|
||||||
"Last-Translator: Li Wei Jih <lwj83@cs.ccu.edu.tw>\n"
|
"Last-Translator: Li Wei Jih <lwj83@cs.ccu.edu.tw>\n"
|
||||||
"Language-Team: chinese <zh@li.org>\n"
|
"Language-Team: chinese <zh@li.org>\n"
|
||||||
|
"Language: zh_TW\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
@@ -512,7 +513,7 @@ msgstr "Window Maker 收到訊號 %i。"
|
|||||||
|
|
||||||
#: ../src/dialog.c:1768
|
#: ../src/dialog.c:1768
|
||||||
msgid ""
|
msgid ""
|
||||||
" This fatal error occured probably due to a bug. Please fill the included "
|
" This fatal error occurred probably due to a bug. Please fill the included "
|
||||||
"BUGFORM and report it to %s."
|
"BUGFORM and report it to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"這個嚴重錯誤可能是因為程式錯誤所致。請填寫附帶的 BUGFORM 並向 "
|
"這個嚴重錯誤可能是因為程式錯誤所致。請填寫附帶的 BUGFORM 並向 "
|
||||||
@@ -1927,7 +1928,7 @@ msgstr "刪除最後的工作區"
|
|||||||
#~ msgstr "另一套視窗管理員啟動失敗。放棄中。"
|
#~ msgstr "另一套視窗管理員啟動失敗。放棄中。"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "a fatal error has occured, probably due to a bug. Please fill the "
|
#~ "a fatal error has occurred, probably due to a bug. Please fill the "
|
||||||
#~ "included BUGFORM and report it."
|
#~ "included BUGFORM and report it."
|
||||||
#~ msgstr "發生嚴重錯誤,可能因為程式錯誤。請填寫 BUGFORM 並提出報告。"
|
#~ msgstr "發生嚴重錯誤,可能因為程式錯誤。請填寫 BUGFORM 並提出報告。"
|
||||||
|
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ while [ $# -gt 0 ]; do
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
-h|-help|--help) print_help ;;
|
-h|-help|--help) print_help ;;
|
||||||
-*) arg_error "unknow option '$1'" ;;
|
-*) arg_error "unknown option '$1'" ;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
arg_error "argument '$1' is not understood"
|
arg_error "argument '$1' is not understood"
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ while [ $# -gt 0 ]; do
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
-h|-help|--help) print_help ;;
|
-h|-help|--help) print_help ;;
|
||||||
-*) arg_error "unknow option '$1'" ;;
|
-*) arg_error "unknown option '$1'" ;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
[ "x$trans_dir" != "x" ] || arg_error "only 1 directory can be specified for translation"
|
[ "x$trans_dir" != "x" ] || arg_error "only 1 directory can be specified for translation"
|
||||||
@@ -226,7 +226,7 @@ END {
|
|||||||
error_count++;
|
error_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
# If error(s) occured, use non-zero status to stop 'make'
|
# If error(s) occurred, use non-zero status to stop 'make'
|
||||||
# We use 3 to distinguish for awk's possible own problems (status 1 or 2)
|
# We use 3 to distinguish for awk's possible own problems (status 1 or 2)
|
||||||
if (error_count > 0) { exit 3 }
|
if (error_count > 0) { exit 3 }
|
||||||
}"
|
}"
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ $1"
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
-h|-help|--help) print_help ;;
|
-h|-help|--help) print_help ;;
|
||||||
-*) arg_error "unknow option '$1'" ;;
|
-*) arg_error "unknown option '$1'" ;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
arg_error "argument '$1' is not understood"
|
arg_error "argument '$1' is not understood"
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ while [ $# -gt 0 ]; do
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
-h|-help|--help) print_help ;;
|
-h|-help|--help) print_help ;;
|
||||||
-*) arg_error "unknow option '$1'" ;;
|
-*) arg_error "unknown option '$1'" ;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
[ -z "$input_file" ] || arg_error "only 1 man page can be specified"
|
[ -z "$input_file" ] || arg_error "only 1 man page can be specified"
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ while [ $# -gt 0 ]; do
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
-h|-help|--help) print_help ;;
|
-h|-help|--help) print_help ;;
|
||||||
-*) arg_error "unknow option '$1'" ;;
|
-*) arg_error "unknown option '$1'" ;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
[ -r "$1" ] || arg_error "source file \"$1\" is not readable"
|
[ -r "$1" ] || arg_error "source file \"$1\" is not readable"
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ while [ $# -gt 0 ]; do
|
|||||||
project_version="$1"
|
project_version="$1"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
-*) arg_error "unknow option '$1'" ;;
|
-*) arg_error "unknown option '$1'" ;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
[ "x$lang_file" = "x" ] || arg_error "only 1 po file can be specified, not \"$lang_file\" and \"$1\""
|
[ "x$lang_file" = "x" ] || arg_error "only 1 po file can be specified, not \"$lang_file\" and \"$1\""
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ while [ $# -gt 0 ]; do
|
|||||||
project_version="$1"
|
project_version="$1"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
-*) arg_error "unknow option '$1'" ;;
|
-*) arg_error "unknown option '$1'" ;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
[ "x$input_file" = "x" ] || arg_error "only 1 input file can be specified, not \"$input_file\" and \"$1\""
|
[ "x$input_file" = "x" ] || arg_error "only 1 input file can be specified, not \"$input_file\" and \"$1\""
|
||||||
@@ -903,7 +903,7 @@ function execute_commands(line, replaced_line, command) {
|
|||||||
# Variable and Conditional commands ########################################
|
# Variable and Conditional commands ########################################
|
||||||
} else if (command == "value") {
|
} else if (command == "value") {
|
||||||
if (variable[cmdargs] == "") {
|
if (variable[cmdargs] == "") {
|
||||||
report_error("variable '" cmdargs "' is unknow, for @value at line " NR);
|
report_error("variable '" cmdargs "' is unknown, for @value at line " NR);
|
||||||
}
|
}
|
||||||
line = variable[cmdargs] line;
|
line = variable[cmdargs] line;
|
||||||
|
|
||||||
@@ -913,7 +913,7 @@ function execute_commands(line, replaced_line, command) {
|
|||||||
line = "";
|
line = "";
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
report_error("unknow command @" command " at line " NR);
|
report_error("unknown command @" command " at line " NR);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -971,7 +971,7 @@ function process_end(line) {
|
|||||||
par_indent = 0;
|
par_indent = 0;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
report_error("unknow command @end " line " at line " NR);
|
report_error("unknown command @end " line " at line " NR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user