mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-18 12:00:31 +01:00
Window Maker 0.20.3
This commit is contained in:
4
AUTHORS
4
AUTHORS
@@ -98,8 +98,8 @@ Move/resize code fixes, button press/release fix
|
||||
Ryan Land <rland@bc1.com>
|
||||
workspace "layers"
|
||||
|
||||
Largo <largo@gnu.net>
|
||||
wm.gnu.net maintainer, FAQ maintainer
|
||||
Largo <largo@current.nu>
|
||||
wm.current.nu maintainer, FAQ co-maintainer
|
||||
|
||||
Stuart Luppescu <s-luppescu@uchicago.edu>
|
||||
Documentation help
|
||||
|
||||
1
INSTALL
1
INSTALL
@@ -26,6 +26,7 @@ SUPPORTED PLATFORMS
|
||||
- XFree86 / OS/2
|
||||
- Corel NetWinder
|
||||
- SunOS 4.x
|
||||
- MacOS / MachTen 4.1.1
|
||||
|
||||
Patches to make it work on other platforms are welcome.
|
||||
|
||||
|
||||
25
README
25
README
@@ -38,6 +38,10 @@ part of the NEXTSTEP(tm) GUI. It's supposed to be relatively fast and small,
|
||||
feature rich, easy to configure and easy to use, with a simple and elegant
|
||||
appearance borrowed from NEXTSTEP(tm).
|
||||
|
||||
Window Maker was designed keeping integration with GNUstep in mind and is the
|
||||
"official" window manager for it. Read more about GNUstep further on this
|
||||
file.
|
||||
|
||||
Window Maker was previously called WindowMaker.
|
||||
|
||||
Window Maker has no connection with Windowmaker, the software for
|
||||
@@ -134,6 +138,26 @@ using. You can use the system information section at the end of BUGFORM as a
|
||||
guideline. Another thing: please don't send HTML mail.
|
||||
|
||||
|
||||
GNUstep
|
||||
=======
|
||||
|
||||
GNUstep is a complete object-oriented development system, based on the
|
||||
OpenStep specification released by NeXT(tm) (now Apple(tm)) and Sun(tm). It
|
||||
will provide everything one needs to produce cross-platform, object-oriented,
|
||||
graphical (and non-graphical) applications; providing among other things,
|
||||
base system libraries, a high-level GUI application framework that uses a
|
||||
Display PostScript(tm)-like imaging model (DGS), objects for accessing
|
||||
relational databases, distributed objects and a graphical development
|
||||
environment, with a interface builder, a project management system and other
|
||||
tools.
|
||||
|
||||
GNUstep will be used to create a user environment, with everything needed for
|
||||
a complete graphical user interface, such as a file viewer, text editors and
|
||||
other applications. Note that the user environment (or "desktop environment")
|
||||
is only a small part of the whole GNUstep project.
|
||||
|
||||
For more information on the GNUstep project, visit: http://www.gnustep.org
|
||||
|
||||
|
||||
Running multiple instances of Window Maker
|
||||
==========================================
|
||||
@@ -260,6 +284,7 @@ Window Maker is copyrighted by Alfredo K. Kojima and is licensed through the
|
||||
GNU General Public License. Read the COPYING file for the complete license.
|
||||
|
||||
NeXT, OpenStep and NEXTSTEP are a trademarks of NeXT Computer, Inc.
|
||||
All other trademarks are property of their respective owners.
|
||||
|
||||
The authors reserve the right to make changes in the software without prior
|
||||
notice.
|
||||
|
||||
2
TODO
2
TODO
@@ -35,7 +35,7 @@ Need to do:
|
||||
- GNOME stuff
|
||||
- add new file for stuff like default commands and dnd commands for
|
||||
docked apps, balloons for the dock etc
|
||||
|
||||
- alpha-channel app specified icons
|
||||
|
||||
Maybe some day:
|
||||
===============
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
changes since wmaker 0.20.2:
|
||||
............................
|
||||
|
||||
- WMSetBrowserMaxVisibleColumns() - untested
|
||||
|
||||
|
||||
|
||||
changes since wmaker 0.20.0:
|
||||
............................
|
||||
|
||||
|
||||
@@ -815,6 +815,8 @@ int WMAddBrowserColumn(WMBrowser *bPtr);
|
||||
|
||||
void WMRemoveBrowserItem(WMBrowser *bPtr, int column, int row);
|
||||
|
||||
void WMSetBrowserMaxVisibleColumns(WMBrowser *bPtr, int columns);
|
||||
|
||||
void WMSetBrowserColumnTitle(WMBrowser *bPtr, int column, char *title);
|
||||
|
||||
WMListItem *WMAddSortedBrowserItem(WMBrowser *bPtr, int column, char *text, Bool isBranch);
|
||||
|
||||
@@ -134,6 +134,30 @@ WMCreateBrowser(WMWidget *parent)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WMSetBrowserMaxVisibleColumns(WMBrowser *bPtr, int columns)
|
||||
{
|
||||
if (columns > bPtr->maxVisibleColumns) {
|
||||
|
||||
if (columns > bPtr->columnCount) {
|
||||
int i = columns - bPtr->columnCount;
|
||||
|
||||
while (i--) {
|
||||
WMAddBrowserColumn(bPtr);
|
||||
}
|
||||
}
|
||||
|
||||
resizeBrowser(bPtr, bPtr->view->size.width, bPtr->view->size.height);
|
||||
|
||||
} else if (columns < bPtr->maxVisibleColumns) {
|
||||
|
||||
resizeBrowser(bPtr, bPtr->view->size.width, bPtr->view->size.height);
|
||||
}
|
||||
|
||||
bPtr->maxVisibleColumns = columns;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
WMGetBrowserNumberOfColumns(WMBrowser *bPtr)
|
||||
{
|
||||
|
||||
@@ -37,12 +37,7 @@ typedef struct _Panel {
|
||||
WMFrame *posVF;
|
||||
WMFrame *posV;
|
||||
|
||||
WMButton *nwB;
|
||||
WMButton *neB;
|
||||
WMButton *swB;
|
||||
WMButton *seB;
|
||||
WMButton *verB;
|
||||
WMButton *horB;
|
||||
WMButton *posB[8];
|
||||
|
||||
WMFrame *animF;
|
||||
WMButton *animB[4];
|
||||
@@ -54,6 +49,7 @@ typedef struct _Panel {
|
||||
WMFrame *sizeF;
|
||||
WMPopUpButton *sizeP;
|
||||
|
||||
int iconPos;
|
||||
} _Panel;
|
||||
|
||||
|
||||
@@ -66,8 +62,16 @@ showIconLayout(WMWidget *widget, void *data)
|
||||
{
|
||||
_Panel *panel = (_Panel*)data;
|
||||
int w, h;
|
||||
int i;
|
||||
|
||||
if (WMGetButtonSelected(panel->horB)) {
|
||||
for (i=0; i<8; i++) {
|
||||
if (panel->posB[i] == widget) {
|
||||
panel->iconPos = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (panel->iconPos & 1) {
|
||||
w = 32;
|
||||
h = 8;
|
||||
} else {
|
||||
@@ -76,14 +80,19 @@ showIconLayout(WMWidget *widget, void *data)
|
||||
}
|
||||
WMResizeWidget(panel->posV, w, h);
|
||||
|
||||
if (WMGetButtonSelected(panel->nwB)) {
|
||||
switch (panel->iconPos & ~1) {
|
||||
case 0:
|
||||
WMMoveWidget(panel->posV, 2, 2);
|
||||
} else if (WMGetButtonSelected(panel->neB)) {
|
||||
break;
|
||||
case 2:
|
||||
WMMoveWidget(panel->posV, 95-2-w, 2);
|
||||
} else if (WMGetButtonSelected(panel->swB)) {
|
||||
break;
|
||||
case 4:
|
||||
WMMoveWidget(panel->posV, 2, 70-2-h);
|
||||
} else {
|
||||
break;
|
||||
default:
|
||||
WMMoveWidget(panel->posV, 95-2-w, 70-2-h);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,23 +120,20 @@ showData(_Panel *panel)
|
||||
}
|
||||
|
||||
if (str[0]=='t' || str[0]=='T') {
|
||||
if (str[1]=='r' || str[1]=='R') {
|
||||
WMPerformButtonClick(panel->neB);
|
||||
} else {
|
||||
WMPerformButtonClick(panel->nwB);
|
||||
}
|
||||
i = 0;
|
||||
} else {
|
||||
if (str[1]=='r' || str[1]=='R') {
|
||||
WMPerformButtonClick(panel->seB);
|
||||
} else {
|
||||
WMPerformButtonClick(panel->swB);
|
||||
}
|
||||
i = 4;
|
||||
}
|
||||
if (str[1]=='r' || str[1]=='R') {
|
||||
i += 2;
|
||||
}
|
||||
if (str[2]=='v' || str[2]=='V') {
|
||||
WMPerformButtonClick(panel->verB);
|
||||
i += 0;
|
||||
} else {
|
||||
WMPerformButtonClick(panel->horB);
|
||||
i += 1;
|
||||
}
|
||||
panel->iconPos = i;
|
||||
WMPerformButtonClick(panel->posB[i]);
|
||||
|
||||
i = GetIntegerForKey("IconSize");
|
||||
i = (i-24)/8;
|
||||
@@ -171,56 +177,44 @@ createPanel(Panel *p)
|
||||
WMMoveWidget(panel->posF, 25, 10);
|
||||
WMSetFrameTitle(panel->posF, _("Icon Positioning"));
|
||||
|
||||
panel->nwB = WMCreateButton(panel->posF, WBTOnOff);
|
||||
WMResizeWidget(panel->nwB, 24, 24);
|
||||
WMMoveWidget(panel->nwB, 15, 25);
|
||||
WMSetButtonAction(panel->nwB, showIconLayout, panel);
|
||||
for (i=0; i<8; i++) {
|
||||
panel->posB[i] = WMCreateButton(panel->posF, WBTOnOff);
|
||||
WMSetButtonAction(panel->posB[i], showIconLayout, panel);
|
||||
|
||||
panel->neB = WMCreateButton(panel->posF, WBTOnOff);
|
||||
WMResizeWidget(panel->neB, 24, 24);
|
||||
WMMoveWidget(panel->neB, 115, 25);
|
||||
WMSetButtonAction(panel->neB, showIconLayout, panel);
|
||||
|
||||
panel->swB = WMCreateButton(panel->posF, WBTOnOff);
|
||||
WMResizeWidget(panel->swB, 24, 24);
|
||||
WMMoveWidget(panel->swB, 15, 100);
|
||||
WMSetButtonAction(panel->swB, showIconLayout, panel);
|
||||
if (i>0)
|
||||
WMGroupButtons(panel->posB[0], panel->posB[i]);
|
||||
}
|
||||
WMMoveWidget(panel->posB[1], 70, 23);
|
||||
WMResizeWidget(panel->posB[1], 47, 15);
|
||||
WMMoveWidget(panel->posB[3], 70+47, 23);
|
||||
WMResizeWidget(panel->posB[3], 47, 15);
|
||||
|
||||
panel->seB = WMCreateButton(panel->posF, WBTOnOff);
|
||||
WMResizeWidget(panel->seB, 24, 24);
|
||||
WMMoveWidget(panel->seB, 115, 100);
|
||||
WMSetButtonAction(panel->seB, showIconLayout, panel);
|
||||
WMMoveWidget(panel->posB[0], 55, 38);
|
||||
WMResizeWidget(panel->posB[0], 15, 35);
|
||||
WMMoveWidget(panel->posB[4], 55, 38+35);
|
||||
WMResizeWidget(panel->posB[4], 15, 35);
|
||||
|
||||
WMGroupButtons(panel->nwB, panel->neB);
|
||||
WMGroupButtons(panel->nwB, panel->seB);
|
||||
WMGroupButtons(panel->nwB, panel->swB);
|
||||
WMMoveWidget(panel->posB[5], 70, 38+70);
|
||||
WMResizeWidget(panel->posB[5], 47, 15);
|
||||
WMMoveWidget(panel->posB[7], 70+47, 38+70);
|
||||
WMResizeWidget(panel->posB[7], 47, 15);
|
||||
|
||||
WMMoveWidget(panel->posB[2], 70+95, 38);
|
||||
WMResizeWidget(panel->posB[2], 15, 35);
|
||||
WMMoveWidget(panel->posB[6], 70+95, 38+35);
|
||||
WMResizeWidget(panel->posB[6], 15, 35);
|
||||
|
||||
color = WMCreateRGBColor(WMWidgetScreen(panel->win), 0x5100, 0x5100,
|
||||
0x7100, True);
|
||||
panel->posVF = WMCreateFrame(panel->posF);
|
||||
WMResizeWidget(panel->posVF, 95, 70);
|
||||
WMMoveWidget(panel->posVF, 30, 38);
|
||||
WMMoveWidget(panel->posVF, 70, 38);
|
||||
WMSetFrameRelief(panel->posVF, WRSunken);
|
||||
WMSetWidgetBackgroundColor(panel->posVF, color);
|
||||
WMReleaseColor(color);
|
||||
|
||||
panel->posV = WMCreateFrame(panel->posVF);
|
||||
WMSetFrameRelief(panel->posV, WRSimple);
|
||||
|
||||
panel->verB = WMCreateRadioButton(panel->posF);
|
||||
WMResizeWidget(panel->verB, 105, 20);
|
||||
WMMoveWidget(panel->verB, 150, 45);
|
||||
WMSetButtonText(panel->verB, "Vertical");
|
||||
WMSetButtonAction(panel->verB, showIconLayout, panel);
|
||||
|
||||
panel->horB = WMCreateRadioButton(panel->posF);
|
||||
WMResizeWidget(panel->horB, 105, 20);
|
||||
WMMoveWidget(panel->horB, 150, 75);
|
||||
WMSetButtonText(panel->horB, "Horizontal");
|
||||
WMSetButtonAction(panel->horB, showIconLayout, panel);
|
||||
|
||||
|
||||
WMGroupButtons(panel->horB, panel->verB);
|
||||
|
||||
WMMapSubwidgets(panel->posF);
|
||||
|
||||
@@ -298,22 +292,19 @@ storeData(_Panel *panel)
|
||||
SetIntegerForKey(WMGetPopUpButtonSelectedItem(panel->sizeP)*8+24,
|
||||
"IconSize");
|
||||
|
||||
buf[3] = 0;
|
||||
if (WMGetButtonSelected(panel->nwB)) {
|
||||
buf[3] = 0;
|
||||
|
||||
if (panel->iconPos < 4) {
|
||||
buf[0] = 't';
|
||||
buf[1] = 'l';
|
||||
} else if (WMGetButtonSelected(panel->neB)) {
|
||||
buf[0] = 't';
|
||||
buf[1] = 'r';
|
||||
} else if (WMGetButtonSelected(panel->swB)) {
|
||||
buf[0] = 'b';
|
||||
buf[1] = 'l';
|
||||
} else {
|
||||
buf[0] = 'b';
|
||||
buf[1] = 'r';
|
||||
}
|
||||
|
||||
if (WMGetButtonSelected(panel->horB)) {
|
||||
if (panel->iconPos & 2) {
|
||||
buf[1] = 'r';
|
||||
} else {
|
||||
buf[1] = 'l';
|
||||
}
|
||||
if (panel->iconPos & 1) {
|
||||
buf[2] = 'h';
|
||||
} else {
|
||||
buf[2] = 'v';
|
||||
|
||||
@@ -297,7 +297,7 @@ createPanel(Panel *p)
|
||||
|
||||
panel->miconB = WMCreateSwitchButton(panel->maxiF);
|
||||
WMResizeWidget(panel->miconB, 185, 20);
|
||||
WMMoveWidget(panel->miconB, 10, 10);
|
||||
WMMoveWidget(panel->miconB, 10, 15);
|
||||
WMSetButtonText(panel->miconB, _("...do not resize over icons"));
|
||||
|
||||
panel->mdockB = WMCreateSwitchButton(panel->maxiF);
|
||||
|
||||
95
WindowMaker/plmenu.fr.in
Executable file
95
WindowMaker/plmenu.fr.in
Executable file
@@ -0,0 +1,95 @@
|
||||
("Applications",
|
||||
("Informations",
|
||||
("Panneau d'informations", INFO_PANEL),
|
||||
("Panneau d'informations l<>gales", LEGAL_PANEL),
|
||||
("Console syst<73>me", EXEC, "xconsole"),
|
||||
("Charge syst<73>me", EXEC, "xosview || xload"),
|
||||
("Liste des processus", EXEC, "xterm -e top"),
|
||||
("Butineur d'aide", EXEC, "xman")
|
||||
),
|
||||
("Terminal X", EXEC, "xterm -sb"),
|
||||
("Rxvt", EXEC, "rxvt -bg black -fg white -fn fixed"),
|
||||
("Espaces de travail", WORKSPACE_MENU),
|
||||
("Applications",
|
||||
("Graphismes",
|
||||
("Gimp", EXEC, "gimp >/dev/null"),
|
||||
("XV", EXEC, "xv"),
|
||||
("XPaint", EXEC, "xpaint"),
|
||||
("XFig", EXEC, "xfig")
|
||||
),
|
||||
("Xfm", EXEC, "xfm"),
|
||||
("OffiX Files", EXEC, "files"),
|
||||
("LyX", EXEC , "lyx"),
|
||||
("Netscape", EXEC, "netscape"),
|
||||
("Ghostview", EXEC, "ghostview %a(Entrez un fichier)"),
|
||||
("Acrobat", EXEC, "/usr/local/Acrobat3/bin/acroread %a(Entrez un fichier PDF)"),
|
||||
("TkDesk", EXEC, "tkdesk")
|
||||
),
|
||||
("Editeurs",
|
||||
("XFte", EXEC, "xfte"),
|
||||
("XEmacs", EXEC, "xemacs || emacs"),
|
||||
("XJed", EXEC, "xjed"),
|
||||
("NEdit", EXEC, "nedit"),
|
||||
("Xedit", EXEC, "xedit"),
|
||||
("VI", EXEC, "xterm -e vi")
|
||||
),
|
||||
("Divers",
|
||||
("Xmcd", EXEC, "xmcd 2> /dev/null"),
|
||||
("Xplaycd", EXEC, "xplaycd"),
|
||||
("Xmixer", EXEC, "xmixer")
|
||||
),
|
||||
("Utilitaires",
|
||||
("Calculatrice", EXEC, "xcalc"),
|
||||
("Propri<72>t<EFBFBD>s de la fen<65>tre", EXEC, "xprop | xmessage -center -title 'xprop' -file -"),
|
||||
("S<>lecteur de polices", EXEC, "xfontsel"),
|
||||
("Emulateur de terminal", EXEC, "xminicom"),
|
||||
("Loupe", EXEC, "xmag"),
|
||||
("Carte des couleurs", EXEC, "xcmap"),
|
||||
("XKill", EXEC, "xkill"),
|
||||
("ASClock", EXEC, "asclock -shape"),
|
||||
("S<>lections", EXEC, "xclipboard")
|
||||
),
|
||||
("S<>lection",
|
||||
("Copier", EXEC, "echo '%s' | wxcopy"),
|
||||
("Envoyer <20>", EXEC, "xterm -name mail -T Pine -e pine %s"),
|
||||
("Naviguer", EXEC, "netscape %s"),
|
||||
("Rechercher dans le manuel", EXEC, "MANUAL_SEARCH(%s)")
|
||||
),
|
||||
("Espace de travail",
|
||||
("Cacher les autres fen<65>tres", HIDE_OTHERS),
|
||||
("Montrer toutes les fen<65>tres", SHOW_ALL),
|
||||
("Arranger les ic<69>nes", ARRANGE_ICONS),
|
||||
("Retracer l'<27>cran", REFRESH),
|
||||
("V<>rrouiller", EXEC, "xlock -allowroot -usefirst"),
|
||||
("Sauver la session", SAVE_SESSION),
|
||||
("Effacer la session", CLEAR_SESSION)
|
||||
),
|
||||
("Apparence",
|
||||
("Th<54>mes", OPEN_MENU, "#pkgdatadir#/Themes ~/GNUstep/Library/WindowMaker/Themes WITH setstyle"),
|
||||
("Styles", OPEN_MENU, "#pkgdatadir#/Styles ~/GNUstep/Library/WindowMaker/Styles WITH setstyle"),
|
||||
("Jeu d'ic<69>nes", OPEN_MENU, "#pkgdatadir#/IconSets ~/GNUstep/Library/WindowMaker/IconSets WITH seticons"),
|
||||
("Fond d'<27>cran",
|
||||
("Unifi<66>",
|
||||
("Noir", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"),
|
||||
("Bleu", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"),
|
||||
("Violet", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"),
|
||||
("Blanc cr<63>me", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"),
|
||||
("Gris fonc<6E>", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"),
|
||||
("Bordeaux", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'")
|
||||
),
|
||||
("Degrad<61>",
|
||||
("Drapeau", EXEC, "wdwrite WindowMaker WorkspaceBack '(mdgradient, green, red, white, green)'"),
|
||||
("Ciel", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'")
|
||||
),
|
||||
("Images", OPEN_MENU, "#pkgdatadir#/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t")
|
||||
),
|
||||
("Sauver le th<74>me", EXEC, "getstyle -t ~/GNUstep/Library/WindowMaker/Themes /\"%a(Theme name)\""),
|
||||
("Sauver le jeu d'ic<69>nes", EXEC, "geticonset ~/GNUstep/Library/WindowMaker/IconSets /\"%a(IconSet name)\"")
|
||||
),
|
||||
("Quitter",
|
||||
("Red<65>marrer", RESTART),
|
||||
("D<>marrer AfterStep", RESTART, afterstep),
|
||||
("Quitter...", EXIT),
|
||||
("Terminer la session", SHUTDOWN)
|
||||
)
|
||||
)
|
||||
213
WindowMaker/plmenu.hr.in
Executable file
213
WindowMaker/plmenu.hr.in
Executable file
@@ -0,0 +1,213 @@
|
||||
(
|
||||
Programi,
|
||||
(
|
||||
Info,
|
||||
("Info Panel...", INFO_PANEL),
|
||||
(Legal..., LEGAL_PANEL),
|
||||
("Sistemska konzola", EXEC, xconsole),
|
||||
("Optere\346enje sistema", EXEC, "xosview || xload"),
|
||||
("Lista procesa", EXEC, "xterm -e top"),
|
||||
("Pretra\276iva\350 manuala", EXEC, xman)
|
||||
),
|
||||
(XTerm, EXEC, "xterm -sb"),
|
||||
(Rxvt, EXEC, "rxvt -bg black -fg white -fn fixed"),
|
||||
("Radni Prostori", WORKSPACE_MENU),
|
||||
(
|
||||
Programi,
|
||||
(
|
||||
Grafika,
|
||||
(Gimp, EXEC, "gimp >/dev/null"),
|
||||
(XV, EXEC, xv),
|
||||
(XPaint, EXEC, xpaint),
|
||||
(XFig, EXEC, xfig)
|
||||
),
|
||||
("X File Manager", EXEC, xfm),
|
||||
("OffiX Files", EXEC, files),
|
||||
(LyX, EXEC, lyx),
|
||||
(Netscape, EXEC, netscape),
|
||||
(Ghostview, EXEC, "ghostview %a(Enter file to view)"),
|
||||
(
|
||||
Acrobat,
|
||||
EXEC,
|
||||
"/usr/local/Acrobat3/bin/acroread %a(Enter PDF to view)"
|
||||
),
|
||||
(TkDesk, EXEC, tkdesk)
|
||||
),
|
||||
(
|
||||
Editori,
|
||||
(XFte, EXEC, xfte),
|
||||
(XEmacs, EXEC, "xemacs || emacs"),
|
||||
(XJed, EXEC, xjed),
|
||||
(NEdit, EXEC, nedit),
|
||||
(Xedit, EXEC, xedit),
|
||||
(VI, EXEC, "xterm -e vi")
|
||||
),
|
||||
(
|
||||
Razno,
|
||||
(Xmcd, EXEC, "xmcd 2> /dev/null"),
|
||||
(Xplaycd, EXEC, xplaycd),
|
||||
(Xmixer, EXEC, xmixer)
|
||||
),
|
||||
(
|
||||
"Pomo\346ni programi",
|
||||
(Kalkulator, EXEC, xcalc),
|
||||
(
|
||||
"Postavke prozora",
|
||||
EXEC,
|
||||
"xprop | xmessage -center -title 'xprop' -file -"
|
||||
),
|
||||
("Bira\350 fontova", EXEC, xfontsel),
|
||||
("Emulator terminala", EXEC, xminicom),
|
||||
("Pove\346alo", EXEC, xmag),
|
||||
(Colormap, EXEC, xcmap),
|
||||
(XKill, EXEC, xkill),
|
||||
(ASClock, EXEC, "asclock -shape"),
|
||||
(Clipboard, EXEC, xclipboard)
|
||||
),
|
||||
(
|
||||
Odabir,
|
||||
(Kopiraj, EXEC, "echo '%s' | wxcopy"),
|
||||
("Po\271alji e-mail", EXEC, "xterm -name mail -T Pine -e pine %s"),
|
||||
("Otvori web", EXEC, "netscape %s"),
|
||||
("Potra\276i u manualu", EXEC, "MANUAL_SEARCH(%s)")
|
||||
),
|
||||
(
|
||||
"Radni prostor",
|
||||
("Sakrij ostale", HIDE_OTHERS),
|
||||
("Poka\276i sve", SHOW_ALL),
|
||||
("Pospremi ikone", ARRANGE_ICONS),
|
||||
("Osvje\276i", REFRESH),
|
||||
("Zaklju\350aj", EXEC, "xlock -allowroot -usefirst"),
|
||||
("Snimi session", SAVE_SESSION),
|
||||
("O\350isti snimljeni Session", CLEAR_SESSION)
|
||||
),
|
||||
(
|
||||
Izgled,
|
||||
(
|
||||
Teme,
|
||||
OPEN_MENU,
|
||||
"/usr/local/share/WindowMaker/Themes ~/GNUstep/Library/WindowMaker/Themes WITH setstyle"
|
||||
),
|
||||
(
|
||||
Stilovi,
|
||||
OPEN_MENU,
|
||||
"/usr/local/share/WindowMaker/Styles ~/GNUstep/Library/WindowMaker/Styles WITH setstyle"
|
||||
),
|
||||
(
|
||||
"Setovi ikona",
|
||||
OPEN_MENU,
|
||||
"/usr/local/share/WindowMaker/IconSets ~/GNUstep/Library/WindowMaker/IconSets WITH seticons"
|
||||
),
|
||||
(
|
||||
Pozadina,
|
||||
(
|
||||
Boja,
|
||||
(
|
||||
Crna,
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(solid, black)'"
|
||||
),
|
||||
(
|
||||
Plava,
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"
|
||||
),
|
||||
(
|
||||
Indigo,
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"
|
||||
),
|
||||
(
|
||||
"Duboko Plava",
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(solid, \"#180090\")'"
|
||||
),
|
||||
(
|
||||
Purpurna,
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"
|
||||
),
|
||||
(
|
||||
Pustinjska,
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"
|
||||
),
|
||||
(
|
||||
"Tamno siva",
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"
|
||||
),
|
||||
(
|
||||
Vinska,
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'"
|
||||
)
|
||||
),
|
||||
(
|
||||
Preljevi,
|
||||
(
|
||||
"Zalazak sunca",
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"
|
||||
),
|
||||
(
|
||||
Nebo,
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"
|
||||
),
|
||||
(
|
||||
"Plave nijanse",
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"
|
||||
),
|
||||
(
|
||||
"Indigo nijanse",
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"
|
||||
),
|
||||
(
|
||||
"Purpurne nijanse",
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"
|
||||
),
|
||||
(
|
||||
"Pustinjske nijanse",
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"
|
||||
),
|
||||
(
|
||||
"Sive nijanse",
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"
|
||||
),
|
||||
(
|
||||
"Vinske nijanse",
|
||||
EXEC,
|
||||
"wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'"
|
||||
)
|
||||
),
|
||||
(
|
||||
Slike,
|
||||
OPEN_MENU,
|
||||
"/usr/local/share/WindowMaker/Backgrounds ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t"
|
||||
)
|
||||
),
|
||||
(
|
||||
"Snimi temu",
|
||||
EXEC,
|
||||
"getstyle -t ~/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\""
|
||||
),
|
||||
(
|
||||
"Snimi set ikona",
|
||||
EXEC,
|
||||
"geticonset ~/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\""
|
||||
)
|
||||
),
|
||||
(
|
||||
Izlaz,
|
||||
("Ponovo startaj", RESTART),
|
||||
("Startaj AfterStep", RESTART, afterstep),
|
||||
(Izlaz..., EXIT),
|
||||
("Izlaz iz sessiona...", SHORTCUT, "Mod1+e", SHUTDOWN, QUICK)
|
||||
),
|
||||
)
|
||||
179
install-sh
179
install-sh
@@ -1,14 +1,27 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# install - install a program, script, or datafile
|
||||
# This comes from X11R5; it is not part of GNU.
|
||||
# This comes from X11R5 (mit/util/scripts/install.sh).
|
||||
#
|
||||
# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
|
||||
# Copyright 1991 by the Massachusetts Institute of Technology
|
||||
#
|
||||
# Permission to use, copy, modify, distribute, and sell this software and its
|
||||
# documentation for any purpose is hereby granted without fee, provided that
|
||||
# the above copyright notice appear in all copies and that both that
|
||||
# copyright notice and this permission notice appear in supporting
|
||||
# documentation, and that the name of M.I.T. not be used in advertising or
|
||||
# publicity pertaining to distribution of the software without specific,
|
||||
# written prior permission. M.I.T. makes no representations about the
|
||||
# suitability of this software for any purpose. It is provided "as is"
|
||||
# without express or implied warranty.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
#
|
||||
# from scratch. It can only install one file at a time, a restriction
|
||||
# shared with many OS's install programs.
|
||||
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
@@ -26,9 +39,12 @@ chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
|
||||
transformbasename=""
|
||||
transform_arg=""
|
||||
instcmd="$mvprog"
|
||||
chmodcmd=""
|
||||
chmodcmd="$chmodprog 0755"
|
||||
chowncmd=""
|
||||
chgrpcmd=""
|
||||
stripcmd=""
|
||||
@@ -36,6 +52,7 @@ rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=""
|
||||
dst=""
|
||||
dir_arg=""
|
||||
|
||||
while [ x"$1" != x ]; do
|
||||
case $1 in
|
||||
@@ -43,6 +60,10 @@ while [ x"$1" != x ]; do
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
@@ -62,10 +83,20 @@ while [ x"$1" != x ]; do
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
*) if [ x"$src" = x ]
|
||||
then
|
||||
src=$1
|
||||
else
|
||||
# this colon is to work around a 386BSD /bin/sh bug
|
||||
:
|
||||
dst=$1
|
||||
fi
|
||||
shift
|
||||
@@ -75,45 +106,145 @@ done
|
||||
|
||||
if [ x"$src" = x ]
|
||||
then
|
||||
echo "install: no input file specified"
|
||||
echo "install: no input file specified"
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
if [ x"$dst" = x ]
|
||||
then
|
||||
echo "install: no destination specified"
|
||||
exit 1
|
||||
fi
|
||||
if [ x"$dir_arg" != x ]; then
|
||||
dst=$src
|
||||
src=""
|
||||
|
||||
if [ -d $dst ]; then
|
||||
instcmd=:
|
||||
else
|
||||
instcmd=mkdir
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
|
||||
if [ -f $src -o -d $src ]
|
||||
then
|
||||
true
|
||||
else
|
||||
echo "install: $src does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ x"$dst" = x ]
|
||||
then
|
||||
echo "install: no destination specified"
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
# If destination is a directory, append the input filename; if your system
|
||||
# does not like double slashes in filenames, you may need to add some logic
|
||||
|
||||
if [ -d $dst ]
|
||||
then
|
||||
dst="$dst"/`basename $src`
|
||||
if [ -d $dst ]
|
||||
then
|
||||
dst="$dst"/`basename $src`
|
||||
else
|
||||
true
|
||||
fi
|
||||
fi
|
||||
|
||||
## this sed command emulates the dirname command
|
||||
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||
|
||||
# Make sure that the destination directory exists.
|
||||
# this part is taken from Noah Friedman's mkinstalldirs script
|
||||
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if [ ! -d "$dstdir" ]; then
|
||||
defaultIFS='
|
||||
'
|
||||
IFS="${IFS-${defaultIFS}}"
|
||||
|
||||
oIFS="${IFS}"
|
||||
# Some sh's can't handle IFS=/ for some reason.
|
||||
IFS='%'
|
||||
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||
IFS="${oIFS}"
|
||||
|
||||
pathcomp=''
|
||||
|
||||
while [ $# -ne 0 ] ; do
|
||||
pathcomp="${pathcomp}${1}"
|
||||
shift
|
||||
|
||||
if [ ! -d "${pathcomp}" ] ;
|
||||
then
|
||||
$mkdirprog "${pathcomp}"
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
pathcomp="${pathcomp}/"
|
||||
done
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]
|
||||
then
|
||||
$doit $instcmd $dst &&
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
|
||||
else
|
||||
|
||||
# If we're going to rename the final executable, determine the name now.
|
||||
|
||||
if [ x"$transformarg" = x ]
|
||||
then
|
||||
dstfile=`basename $dst`
|
||||
else
|
||||
dstfile=`basename $dst $transformbasename |
|
||||
sed $transformarg`$transformbasename
|
||||
fi
|
||||
|
||||
# don't allow the sed command to completely eliminate the filename
|
||||
|
||||
if [ x"$dstfile" = x ]
|
||||
then
|
||||
dstfile=`basename $dst`
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
# Make a temp file name in the proper directory.
|
||||
|
||||
dstdir=`dirname $dst`
|
||||
dsttmp=$dstdir/#inst.$$#
|
||||
dsttmp=$dstdir/#inst.$$#
|
||||
|
||||
# Move or copy the file name to the temp name
|
||||
|
||||
$doit $instcmd $src $dsttmp
|
||||
$doit $instcmd $src $dsttmp &&
|
||||
|
||||
trap "rm -f ${dsttmp}" 0 &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
|
||||
$doit $rmcmd $dst
|
||||
$doit $mvcmd $dsttmp $dst
|
||||
$doit $rmcmd -f $dstdir/$dstfile &&
|
||||
$doit $mvcmd $dsttmp $dstdir/$dstfile
|
||||
|
||||
fi &&
|
||||
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -141,7 +141,7 @@ typedef struct WObjDescriptor {
|
||||
#define WIS_TWIST 1
|
||||
#define WIS_FLIP 2
|
||||
#define WIS_NONE 3
|
||||
|
||||
#define WIS_RANDOM 4 /* secret */
|
||||
|
||||
/* switchmenu actions */
|
||||
#define ACTION_ADD 0
|
||||
@@ -212,7 +212,7 @@ typedef struct WPreferences {
|
||||
|
||||
char use_saveunders; /* turn on SaveUnders for menus,
|
||||
* icons etc. */
|
||||
char no_window_under_dock;
|
||||
char no_window_over_dock;
|
||||
|
||||
char no_window_over_icons;
|
||||
|
||||
|
||||
@@ -414,7 +414,7 @@ wMaximizeWindow(WWindow *wwin, int directions)
|
||||
|
||||
if (wwin->screen_ptr->dock
|
||||
&& (!wwin->screen_ptr->dock->lowered
|
||||
|| wPreferences.no_window_under_dock)) {
|
||||
|| wPreferences.no_window_over_dock)) {
|
||||
|
||||
new_width -= wPreferences.icon_size + DOCK_EXTRA_SPACE;
|
||||
if (!wwin->screen_ptr->dock->on_right_side)
|
||||
@@ -674,6 +674,10 @@ animateResize(WScreen *scr, int x, int y, int w, int h,
|
||||
if (style == WIS_NONE)
|
||||
return;
|
||||
|
||||
if (style == WIS_RANDOM) {
|
||||
style = rand()%3;
|
||||
}
|
||||
|
||||
k = (hiding ? 2 : 3);
|
||||
switch(style) {
|
||||
case WIS_TWIST:
|
||||
|
||||
@@ -233,12 +233,13 @@ wClientConfigure(WWindow *wwin, XConfigureRequestEvent *xcre)
|
||||
if (!wwin->flags.shaded) {
|
||||
/* If the window is shaded, wrong height will be set for the window */
|
||||
if (xcre->value_mask & CWX)
|
||||
nx = xcre->x;
|
||||
nx = xcre->x - FRAME_BORDER_WIDTH;
|
||||
else
|
||||
nx = wwin->frame_x;
|
||||
|
||||
if (xcre->value_mask & CWY)
|
||||
ny = xcre->y - ((ofs_y < 0) ? 0 : wwin->frame->top_width);
|
||||
ny = xcre->y - ((ofs_y < 0) ? 0 : wwin->frame->top_width)
|
||||
- FRAME_BORDER_WIDTH;
|
||||
else
|
||||
ny = wwin->frame_y;
|
||||
|
||||
|
||||
@@ -222,6 +222,7 @@ static WOptionEnumeration seIconificationStyles[] = {
|
||||
{"Twist", WIS_TWIST, 0},
|
||||
{"Flip", WIS_FLIP, 0},
|
||||
{"None", WIS_NONE, 0},
|
||||
{"random", WIS_RANDOM, 0},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
@@ -391,8 +392,8 @@ WDefaultEntry optionList[] = {
|
||||
{"AutoArrangeIcons", "NO", NULL,
|
||||
&wPreferences.auto_arrange_icons, getBool, NULL
|
||||
},
|
||||
{"NoWindowUnderDock", "NO", NULL,
|
||||
&wPreferences.no_window_under_dock, getBool, NULL
|
||||
{"NoWindowOverDock", "NO", NULL,
|
||||
&wPreferences.no_window_over_dock, getBool, NULL
|
||||
},
|
||||
{"NoWindowOverIcons", "NO", NULL,
|
||||
&wPreferences.no_window_over_icons, getBool, NULL
|
||||
|
||||
@@ -1235,13 +1235,12 @@ wSelectWindows(WScreen *scr, XEvent *ev)
|
||||
|
||||
|
||||
void
|
||||
InteractivePlaceWindow(WWindow *wwin, int *x_ret, int *y_ret)
|
||||
InteractivePlaceWindow(WWindow *wwin, int *x_ret, int *y_ret,
|
||||
unsigned width, unsigned height)
|
||||
{
|
||||
WScreen *scr = wwin->screen_ptr;
|
||||
Window root = scr->root_win;
|
||||
int x, y, h = 0;
|
||||
int width = wwin->client.width;
|
||||
int height = wwin->client.height;
|
||||
XEvent event;
|
||||
KeyCode shiftl, shiftr;
|
||||
Window junkw;
|
||||
|
||||
@@ -50,7 +50,8 @@ extern WPreferences wPreferences;
|
||||
*/
|
||||
|
||||
extern void
|
||||
InteractivePlaceWindow(WWindow *wwin, int *x_ret, int *y_ret);
|
||||
InteractivePlaceWindow(WWindow *wwin, int *x_ret, int *y_ret,
|
||||
unsigned width, unsigned height);
|
||||
|
||||
|
||||
/*
|
||||
@@ -375,7 +376,7 @@ PlaceWindow(WWindow *wwin, int *x_ret, int *y_ret,
|
||||
|
||||
switch (wPreferences.window_placement) {
|
||||
case WPM_MANUAL:
|
||||
InteractivePlaceWindow(wwin, x_ret, y_ret);
|
||||
InteractivePlaceWindow(wwin, x_ret, y_ret, width, height);
|
||||
break;
|
||||
|
||||
case WPM_SMART:
|
||||
|
||||
@@ -58,6 +58,9 @@
|
||||
|
||||
|
||||
#ifdef R6SM
|
||||
|
||||
extern int wScreenCount;
|
||||
|
||||
/* requested for SaveYourselfPhase2 */
|
||||
static Bool sWaitingPhase2 = False;
|
||||
|
||||
@@ -532,7 +535,8 @@ wSessionRestoreLastWorkspace(WScreen *scr)
|
||||
#ifdef R6SM
|
||||
/*
|
||||
* With full session management support, the part of WMState
|
||||
* that store client window state will become obsolete,
|
||||
* that store client window state will become obsolete (maybe we can reuse
|
||||
* the old code too),
|
||||
* but we still need to store state info like the dock and workspaces.
|
||||
* It is better to keep dock/wspace info in WMState because the user
|
||||
* might want to keep the dock configuration while not wanting to
|
||||
@@ -559,11 +563,19 @@ wSessionRestoreLastWorkspace(WScreen *scr)
|
||||
/*
|
||||
* Windows are identified as:
|
||||
* WM_CLASS(instance.class).WM_WINDOW_ROLE
|
||||
*
|
||||
* Saved Info:
|
||||
*
|
||||
*
|
||||
* WM_CLASS.instance
|
||||
* WM_CLASSS.class
|
||||
* WM_WINDOW_ROLE
|
||||
* geometry
|
||||
* (state array (miniaturized, shaded, etc))
|
||||
* workspace
|
||||
* wich dock
|
||||
*/
|
||||
static void
|
||||
saveClientState(WWindow *wwin, proplist_t dict)
|
||||
static proplist_t
|
||||
makeClientState(WWindow *wwin)
|
||||
{
|
||||
proplist_t key;
|
||||
|
||||
@@ -585,7 +597,7 @@ smSaveYourselfPhase2Proc(SmcConn smc_conn, SmPointer client_data)
|
||||
Bool gsPrefix = False;
|
||||
char *discardCmd = NULL;
|
||||
time_t t;
|
||||
FILE *file;
|
||||
proplist_t state;
|
||||
|
||||
#ifdef DEBUG1
|
||||
puts("received SaveYourselfPhase2 SM message");
|
||||
@@ -629,17 +641,57 @@ smSaveYourselfPhase2Proc(SmcConn smc_conn, SmPointer client_data)
|
||||
free(prefix);
|
||||
|
||||
/* save the states of all windows we're managing */
|
||||
|
||||
file = fopen(statefile, "w");
|
||||
if (!file) {
|
||||
wsyserror(_("could not create state file %s"), statefile);
|
||||
goto fail;
|
||||
state = PLMakeArrayFromElements(NULL, NULL);
|
||||
|
||||
/*
|
||||
* Format:
|
||||
*
|
||||
* state_file ::= dictionary with version_info ; state
|
||||
* version_info ::= version = 1;
|
||||
* state ::= state = array of screen_info
|
||||
* screen_info ::= array of (screen number, window_info, window_info, ...)
|
||||
* window_info ::=
|
||||
*/
|
||||
for (i=0; i<wScreenCount; i++) {
|
||||
WScreen *scr;
|
||||
WWindow *wwin;
|
||||
char buf[32];
|
||||
proplist_t pscreen;
|
||||
|
||||
scr = wScreenWithNumber(i);
|
||||
|
||||
sprintf(buf, "%i", scr->screen);
|
||||
pscreen = PLMakeArrayFromElements(PLMakeString(buf), NULL);
|
||||
|
||||
wwin = scr->focused_window;
|
||||
while (wwin) {
|
||||
proplist_t pwindow;
|
||||
|
||||
pwindow = makeClientState(wwin);
|
||||
PLAppendArrayElement(pscreen, pwindow);
|
||||
|
||||
wwin = wwin->prev;
|
||||
}
|
||||
|
||||
PLAppendArrayElement(state, pscreen);
|
||||
}
|
||||
|
||||
{
|
||||
proplist_t statefile;
|
||||
|
||||
statefile = PLMakeDictionaryFromEntries(PLMakeString("Version"),
|
||||
PLMakeString("1"),
|
||||
|
||||
PLMakeString("Screens"),
|
||||
state,
|
||||
|
||||
NULL);
|
||||
|
||||
PLSetFilename(statefile, PLMakeString(statefile));
|
||||
PLSave(statefile, NO);
|
||||
|
||||
PLRelease(statefile);
|
||||
}
|
||||
|
||||
|
||||
|
||||
fclose(file);
|
||||
|
||||
|
||||
/* set the remaining properties that we didn't set at
|
||||
* startup time */
|
||||
|
||||
29
src/window.c
29
src/window.c
@@ -800,18 +800,23 @@ wManageWindow(WScreen *scr, Window window)
|
||||
* or if the window wants to
|
||||
* start iconic.
|
||||
* If geometry was saved, restore it. */
|
||||
if (win_state && win_state->state->use_geometry) {
|
||||
x = win_state->state->x;
|
||||
y = win_state->state->y;
|
||||
} else if (wwin->transient_for==None && !scr->flags.startup &&
|
||||
workspace==scr->current_workspace && !iconic &&
|
||||
!(wwin->normal_hints->flags & (USPosition|PPosition))) {
|
||||
PlaceWindow(wwin, &x, &y, width, height);
|
||||
}
|
||||
|
||||
if (wwin->window_flags.dont_move_off)
|
||||
wScreenBringInside(scr, &x, &y, width, height);
|
||||
|
||||
{
|
||||
Bool dontBring = False;
|
||||
|
||||
if (win_state && win_state->state->use_geometry) {
|
||||
x = win_state->state->x;
|
||||
y = win_state->state->y;
|
||||
} else if (wwin->transient_for==None && !scr->flags.startup &&
|
||||
workspace==scr->current_workspace && !iconic &&
|
||||
!(wwin->normal_hints->flags & (USPosition|PPosition))) {
|
||||
PlaceWindow(wwin, &x, &y, width, height);
|
||||
if (wPreferences.window_placement == WPM_MANUAL)
|
||||
dontBring = True;
|
||||
}
|
||||
|
||||
if (wwin->window_flags.dont_move_off && dontBring)
|
||||
wScreenBringInside(scr, &x, &y, width, height);
|
||||
}
|
||||
/*
|
||||
*--------------------------------------------------
|
||||
*
|
||||
|
||||
@@ -1323,6 +1323,14 @@ createInspectorForWindow(WWindow *wwin)
|
||||
WMSetPopUpButtonItemEnabled(panel->pagePopUp, 4, False);
|
||||
panel->appFrm = NULL;
|
||||
}
|
||||
|
||||
/* if the window is a transient, don't let it have a miniaturize
|
||||
* button */
|
||||
if (wwin->transient_for!=None && wwin->transient_for!=scr->root_win)
|
||||
WMSetButtonEnabled(panel->attrChk[3], False);
|
||||
else
|
||||
WMSetButtonEnabled(panel->attrChk[3], True);
|
||||
|
||||
|
||||
WMRealizeWidget(panel->win);
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ bin_PROGRAMS = wxcopy wxpaste wdwrite getstyle setstyle seticons geticonset wmse
|
||||
|
||||
bin_SCRIPTS = wmaker.inst wm-oldmenu2new wsetfont
|
||||
|
||||
EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new
|
||||
EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wsetfont
|
||||
|
||||
INCLUDES = @DFLAGS@ -I$(top_srcdir)/wrlib -I$(top_srcdir)/libPropList\
|
||||
@XCFLAGS@ @GFXFLAGS@
|
||||
|
||||
@@ -96,7 +96,7 @@ bin_PROGRAMS = wxcopy wxpaste wdwrite getstyle setstyle seticons geticonset wmse
|
||||
|
||||
bin_SCRIPTS = wmaker.inst wm-oldmenu2new wsetfont
|
||||
|
||||
EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new
|
||||
EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wsetfont
|
||||
|
||||
INCLUDES = @DFLAGS@ -I$(top_srcdir)/wrlib -I$(top_srcdir)/libPropList\
|
||||
@XCFLAGS@ @GFXFLAGS@
|
||||
|
||||
@@ -48,7 +48,9 @@
|
||||
|
||||
char *ProgName;
|
||||
|
||||
#ifdef at_one_step_from_the_trash
|
||||
#define fuckin_crap
|
||||
|
||||
#ifdef fuckin_crap
|
||||
/* Alfredo please take a look at this function. I don't like the way
|
||||
* it sends the XKillClient. Should it interfere this way with the rest?
|
||||
* This was added by the patch to allow the transparent background for Eterm.
|
||||
@@ -483,7 +485,7 @@ main(int argc, char **argv)
|
||||
#endif
|
||||
RDestroyImage(image);
|
||||
if (secretBuffer==None) {
|
||||
#ifdef at_one_step_from_the_trash
|
||||
#ifdef fuckin_crap
|
||||
setPixmapProperty(pixmap, dpy, root_win);
|
||||
#endif
|
||||
XSetWindowBackgroundPixmap(dpy, root_win, pixmap);
|
||||
|
||||
185
util/wsetfont
Executable file
185
util/wsetfont
Executable file
@@ -0,0 +1,185 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# language/font setting script for Window Maker
|
||||
#
|
||||
# by MANOME Tomonori <manome@itlb.te.noda.sut.ac.jp>
|
||||
#
|
||||
# [Special Thanks To]
|
||||
# Korean fontset info from:
|
||||
# Byeong-Chan, Kim <redhands@linux.sarang.net>
|
||||
# Chae-yong Chong <cychong@metro.telecom.samsung.co.kr>
|
||||
# Latin2 fontset info from:
|
||||
# Piotr Dembinski <pdemb@aurora.put.poznan.pl>
|
||||
# Toni Bilic <root@toni.hr.tel.hr>
|
||||
# Greek fontset info from:
|
||||
# Nikolaos Papagrigoriou <papanikos@usa.net>
|
||||
# Quote bug fix info from:
|
||||
# Luke Kendall <luke@research.canon.com.au>
|
||||
|
||||
VERSION="Version 0.4 1998/11/10"
|
||||
|
||||
WDWRITE="wdwrite"
|
||||
|
||||
|
||||
if test $# != 1; then
|
||||
echo
|
||||
echo "$0 - font/language setting utility for Window Maker"
|
||||
echo
|
||||
echo "Usage: $VERSION"
|
||||
echo " $0 <option> "
|
||||
cat <<EOF
|
||||
-----------------------------------------------------------------------
|
||||
[Option] [Fontset] [Font Information]
|
||||
default helvetica
|
||||
latin1 helvetica(iso8859-1)
|
||||
latin2 helvetica(iso8859-2) See *Note1.
|
||||
greek helvetica(iso8859-7) See *Note1.
|
||||
japanese helvetica/-*-fixed(jisx02XX) Included in X11R6/XFree("fnon" pkg)
|
||||
korean helvetica/-*-kodig(ksc5601) See *Note1.
|
||||
korean2 helvetica/daewoo(ksc5601) Included in X11R6/XFree("fnon" pkg)
|
||||
russian helvetica(koi8-r) Included in X11R6/XFree("fcyr" pkg)
|
||||
turkish unknown See *Note2
|
||||
-----------------------------------------------------------------------
|
||||
Latin1 Languages: Danish/Dutch/English/Finnish/French/Galician/German/
|
||||
Italian/Norwegian/Portuguese/Spanish/Swedish/...
|
||||
Latin2 Languages: Croatian/Czech/Polish/Romanian/Slovenian/...
|
||||
|
||||
*Note1: Not included in X11R6/XFree86. You can download them from ...
|
||||
Latin2 X fonts packages: http://sizif.mf.uni-lj.si/linux/cee/iso8859-2.html
|
||||
Greek X fonts packages: ftp://argeas.argos.hol.gr/pub/unix/linux/GREEK/fonts/
|
||||
ftp://ftp.ntua.gr/pub/fonts/X11/
|
||||
Korean X fonts packages: ftp://linux.sarang.net (Linux RPM)
|
||||
ftp://ftp.kaist.ac.kr/pub/hangul/fonts
|
||||
*Note2: please let me know appropriate font setting for WMGLOBAL/WindowMaker,
|
||||
and the fonts' URL to download. mail-to: manome@itlb.te.noda.sut.ac.jp
|
||||
EOF
|
||||
exit
|
||||
fi
|
||||
|
||||
case $1 in
|
||||
default)
|
||||
SystemFont=\"-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*\"
|
||||
BoldSystemFont=\"-*-helvetica-bold-r-normal-*-%d-*-*-*-*-*-*-*\"
|
||||
WindowTitleFont=\"-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*\"
|
||||
MenuTitleFont=\"-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*\"
|
||||
MenuTextFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*\"
|
||||
IconTitleFont=\"-*-helvetica-medium-r-normal-*-8-*-*-*-*-*-*-*\"
|
||||
ClipTitleFont=\"-*-helvetica-bold-r-normal-*-10-*-*-*-*-*-*-*\"
|
||||
DisplayFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*\"
|
||||
;;
|
||||
latin1)
|
||||
SystemFont=\"-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-iso8859-1\"
|
||||
BoldSystemFont=\"-*-helvetica-bold-r-normal-*-%d-*-*-*-*-*-iso8859-1\"
|
||||
WindowTitleFont=\"-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso8859-1\"
|
||||
MenuTitleFont=\"-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso8859-1\"
|
||||
MenuTextFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-1\"
|
||||
IconTitleFont=\"-*-helvetica-medium-r-normal-*-8-*-*-*-*-*-iso8859-1\"
|
||||
ClipTitleFont=\"-*-helvetica-bold-r-normal-*-10-*-*-*-*-*-iso8859-1\"
|
||||
DisplayFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-1\"
|
||||
;;
|
||||
latin2)
|
||||
SystemFont=\"-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-iso8859-2\"
|
||||
BoldSystemFont=\"-*-helvetica-bold-r-normal-*-%d-*-*-*-*-*-iso8859-2\"
|
||||
WindowTitleFont=\"-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso8859-2\"
|
||||
MenuTitleFont=\"-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso8859-2\"
|
||||
MenuTextFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-2\"
|
||||
IconTitleFont=\"-*-helvetica-medium-r-normal-*-8-*-*-*-*-*-iso8859-2\"
|
||||
ClipTitleFont=\"-*-helvetica-bold-r-normal-*-10-*-*-*-*-*-iso8859-2\"
|
||||
DisplayFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-2\"
|
||||
;;
|
||||
greek)
|
||||
SystemFont=\"-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-iso8859-7\"
|
||||
BoldSystemFont=\"-*-helvetica-bold-r-normal-*-%d-*-*-*-*-*-iso8859-7\"
|
||||
WindowTitleFont=\"-*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-7\"
|
||||
MenuTitleFont=\"-*-helvetica-medium-r-normal-*-14-*-*-*-*-*-iso8859-7\"
|
||||
MenuTextFont=\"-*-helvetica-medium-r-normal-*-14-*-*-*-*-*-iso8859-7\"
|
||||
IconTitleFont=\"-*-helvetica-bold-r-normal-*-10-*-*-*-*-*-iso8859-7\"
|
||||
ClipTitleFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-7\"
|
||||
DisplayFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-7\"
|
||||
;;
|
||||
russian)
|
||||
SystemFont=\"-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-koi8-r\"
|
||||
BoldSystemFont=\"-*-helvetica-bold-r-normal-*-%d-*-*-*-*-*-koi8-r\"
|
||||
WindowTitleFont=\"-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-koi8-r\"
|
||||
MenuTitleFont=\"-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-koi8-r\"
|
||||
MenuTextFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-r\"
|
||||
IconTitleFont=\"-*-helvetica-medium-r-normal-*-8-*-*-*-*-*-koi8-r\"
|
||||
ClipTitleFont=\"-*-helvetica-bold-r-normal-*-10-*-*-*-*-*-koi8-r\"
|
||||
DisplayFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-koi8-r\"
|
||||
;;
|
||||
japanese)
|
||||
SystemFont=\"-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*,-*-*-medium-r-normal-*-%d-*,-*-*-medium-r-normal-*-*-*\"
|
||||
BoldSystemFont=\"-*-helvetica-bold-r-normal-*-%d-*-*-*-*-*-*-*,-*-*-medium-r-normal-*-%d-*,-*-*-medium-r-normal-*-*-*\"
|
||||
WindowTitleFont=\"-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*,-*-*-medium-r-normal-*-14-*,-*-*-medium-r-normal-*-*-*\"
|
||||
MenuTitleFont=\"-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*,-*-*-medium-r-normal-*-14-*,-*-*-medium-r-normal-*-*-*\"
|
||||
MenuTextFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*,-*-*-medium-r-normal-*-14-*,-*-*-medium-r-normal-*-*-*\"
|
||||
IconTitleFont=\"-*-helvetica-medium-r-normal-*-8-*-*-*-*-*-*-*,-*-*-medium-r-normal-*-12-*,-*-*-medium-r-normal-*-*-*\"
|
||||
ClipTitleFont=\"-*-helvetica-bold-r-normal-*-10-*-*-*-*-*-*-*,-*-*-medium-r-normal-*-12-*,-*-*-medium-r-normal-*-*-*\"
|
||||
DisplayFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*,-*-*-medium-r-normal-*-14-*,-*-*-medium-r-normal-*-*-*\"
|
||||
;;
|
||||
korean)
|
||||
SystemFont=\"-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*,*-kodig-medium-r-normal--*-%d-*-*-*-*-*-*,*-*-medium-r-normal--*-%d-*-*-*-*-*-*,*-*-*-*-*--%d-*-*-*-*-*-*-*,*\"
|
||||
BoldSystemFont=\"-*-helvetica-bold-r-normal-*-%d-*-*-*-*-*-*-*,-*-kodig-bold-r-normal--*-%d-*-*-*-*-*-*,*-*-bold-r-normal--*-%d-*-*-*-*-*-*,*-*-*-*-*--%d-*-*-*-*-*-*-*,*\"
|
||||
WindowTitleFont=\"7x14,-*-kodig-medium-r-normal--14-*-*-*-*-*-*-*,-*-*-medium-r-normal--14-*-*-*-*-*-*-*,-*-*-medium-r-normal--*-*-*-*-*-*-*-*,-*-*-*-r-normal--*-*-*-*-*-*-*-*,-*-*-*-*-*--*-*-*-*-*-*-*-*,*\"
|
||||
MenuTitleFont=\"7x14,-*-kodig-medium-r-normal--14-*-*-*-*-*-*-*,-*-*-medium-r-normal--14-*-*-*-*-*-*-*,*-*-medium-r-normal--*-*-*-*-*-*-*-*,*-*-*-r-normal--*-*-*-*-*-*-*-*,*\"
|
||||
MenuTextFont=\"7x14,-*-kodig-medium-r-normal--14-*-*-*-*-*-*-*,*-*-medium-r-normal--14-*-*-*-*-*-*-*,*-*-medium-r-normal--*-*-*-*-*-*-*-*,*-*-*-r-normal--*-*-*-*-*-*-*-*,*\"
|
||||
IconTitleFont=\"7x14,-*-kodig-medium-r-normal--14-*-*-*-*-*-*-*,*-*-medium-r-normal--14-*-*-*-*-*-*-*,*-*-medium-r-normal--*-*-*-*-*-*-*-*,*-*-*-r-normal--*-*-*-*-*-*-*-*,*\"
|
||||
ClipTitleFont=\"7x14,-*-kodig-medium-r-normal--14-*-*-*-*-*-*-*,*-*-medium-r-normal--14-*-*-*-*-*-*-*,*-*-medium-r-normal--*-*-*-*-*-*-*-*,*-*-*-r-normal--*-*-*-*-*-*-*-*,*\"
|
||||
DisplayFont=\"7x14,-*-kodig-medium-r-normal--14-*-*-*-*-*-*-*,*-*-medium-r-normal--14-*-*-*-*-*-*-*,*-*-medium-r-normal--*-*-*-*-*-*-*-*,*-*-*-r-normal--*-*-*-*-*-*-*-*,*\"
|
||||
;;
|
||||
korean2)
|
||||
SystemFont=\"-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*,-*-medium-r-normal-*-%d-*,-*-medium-r-normal-*\"
|
||||
BoldSystemFont=\"-*-helvetica-bold-r-normal-*-%d-*-*-*-*-*-*-*,-*-medium-r-normal-*-%d-*,-*-medium-r-normal-*\"
|
||||
WindowTitleFont=\"7x14,-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*\"
|
||||
MenuTitleFont=\"7x14,-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*\"
|
||||
MenuTextFont=\"7x14,-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*\"
|
||||
IconTitleFont=\"-*-helvetica-medium-r-normal-*-10-*-*-*-*-*-*-*,-*-gothic-medium-r-normal-*-12-*-*-*-*-*-ksc5601.1987-*\"
|
||||
ClipTitleFont=\"-*-helvetica-bold-r-normal-*-10-*-*-*-*-*-*-*,-*-gothic-medium-r-normal-*-12-*-*-*-*-*-ksc5601.1987-*\"
|
||||
DisplayFont=\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*,-*-gothic-medium-r-normal-*-16-*-*-*-*-*-ksc5601.1987-*\"
|
||||
;;
|
||||
*)
|
||||
echo "NOTICE:"
|
||||
echo "Sorry I don't know appropriate font configuration for \"$1\""
|
||||
echo "please let me know your settings for SystemFont,BoldSystemFont,"
|
||||
echo "WindowTitleFont,MenuTitleFont,IconTitleFont,ClipTitleFont,and"
|
||||
echo "DisplayFont thanks"
|
||||
echo "and please let me know also the URL of the fonts to download"
|
||||
echo "if your language need some special fonts not included in "
|
||||
echo "X11R6/XFree."
|
||||
echo "mail-to: manome@itlb.te.noda.sut.ac.jp"
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
#
|
||||
# setting fonts
|
||||
#
|
||||
|
||||
echo "Setting up ~/GNUstep/Defaults/WMGLOBAL..."
|
||||
|
||||
$WDWRITE WMGLOBAL SystemFont "$SystemFont"
|
||||
$WDWRITE WMGLOBAL BoldSystemFont "$BoldSystemFont"
|
||||
|
||||
echo
|
||||
echo " SystemFont=$SystemFont"
|
||||
echo " BoldSystemFont=$BoldSystemFont"
|
||||
echo
|
||||
echo "Setting up ~/GNUstep/Defaults/WindowMaker..."
|
||||
|
||||
$WDWRITE WindowMaker WindowTitleFont "$WindowTitleFont"
|
||||
$WDWRITE WindowMaker MenuTitleFont "$MenuTitleFont"
|
||||
$WDWRITE WindowMaker MenuTextFont "$MenuTextFont"
|
||||
$WDWRITE WindowMaker IconTitleFont "$IconTitleFont"
|
||||
$WDWRITE WindowMaker ClipTitleFont "$ClipTitleFont"
|
||||
$WDWRITE WindowMaker DisplayFont "$DisplayFont"
|
||||
|
||||
echo
|
||||
echo "WindowTitleFont=$WindowTitleFont"
|
||||
echo "MenuTitleFont=$MenuTitleFont"
|
||||
echo "MenuTextFont=$MenuTextFont"
|
||||
echo "IconTitleFont=$IconTitleFont"
|
||||
echo "ClipTitleFont=$ClipTitleFont"
|
||||
echo "DisplayFont=$DisplayFont"
|
||||
echo
|
||||
echo "Done."
|
||||
Reference in New Issue
Block a user