mirror of
https://github.com/morgant/mlvwm.git
synced 2024-11-26 12:49:19 +00:00
Imported mlvwm 0.9.0 release
This commit is contained in:
parent
adcec20bb8
commit
9c8f9eaaf2
@ -1,3 +1,10 @@
|
||||
0.8.9 -> 0.9.0
|
||||
Add EdgeResistance
|
||||
Change menu create function
|
||||
\ can be use to joint configuration line
|
||||
Some small bug fix.
|
||||
Change Swallow margin.
|
||||
|
||||
0.8.8 -> 0.8.9
|
||||
Change scroll bar expose function and befavior
|
||||
Add one click menu(OneClickMenu)
|
||||
|
@ -1,3 +1,10 @@
|
||||
0.8.9 -> 0.9.0
|
||||
EdgeResistance を追加
|
||||
メニュウの作成方法を変更
|
||||
\ で設定の連結
|
||||
細かいバグ修正
|
||||
Swallow のマージンを変更
|
||||
|
||||
0.8.8 -> 0.8.9
|
||||
スクロールバーの書換えと移動関数を変更
|
||||
OneClickMenu を追加
|
||||
|
@ -116,6 +116,8 @@ The item which can be set by the initialization file is as the next.
|
||||
Enable Opaque resize.
|
||||
OneClickMenu
|
||||
Click pull down menu and more one click execute selection.
|
||||
EdgeResistance x y
|
||||
Edge resistance force.
|
||||
ZoomWait
|
||||
Setting Hide animation speed. Default is 10ms. The unit is ms.
|
||||
RotateDesk
|
||||
|
@ -94,6 +94,7 @@ Description
|
||||
OpaqueResize $B%j%5%$%:;~$KCf?H$rI=<($7$?$^$^0\F0(B
|
||||
OneClickMenu $B%/%j%C%/$G%a%K%e!<$,%W%k%@%&%s$7$F!"$b$&0l2s$N%/%j%C%/(B
|
||||
$B$G<B9T(B
|
||||
EdgeResistance $B%&%$%s%I%&$,2hLL$N30$K=P$k$?$a$KI,MW$J0\F0NL$r(B x, y $B$GDI2C(B
|
||||
ZoomWait Hide $B$N%"%K%a!<%7%g%s%9%T!<%I$r(B ms $B$G;XDj!#%G%U%)%k%H$O(B
|
||||
10ms$B!#(B
|
||||
RotateDesk $B%G%9%/%H%C%W$N2C;;!"8:;;$r%m!<%F!<%7%g%s$9$k!#(B
|
||||
|
@ -1,7 +1,7 @@
|
||||
XCOMM Imakefile for MLVWM
|
||||
|
||||
#define IHaveSubdirs
|
||||
SUBDIRS = mlvwm sample_rc
|
||||
SUBDIRS = mlvwm sample_rc man
|
||||
#define PassCDebugFlags
|
||||
|
||||
MakeSubdirs($(SUBDIRS))
|
||||
|
4
README
4
README
@ -12,6 +12,10 @@ xmkmf -a;
|
||||
make.
|
||||
But, it must be compiled with gcc for SunOS4.x.
|
||||
|
||||
make install
|
||||
make install.man
|
||||
are install mlvwm and manual.
|
||||
|
||||
The designation of the installation directory can be done by the
|
||||
change of configure.h. Sauce complying with Locale came in. Make
|
||||
HasLocale YES in configure.h. Cope additionally and suitably though
|
||||
|
@ -10,6 +10,11 @@ make
|
||||
でコンパイルできます。ただし SunOS 4.x の場合 gcc でコンパイルする必要
|
||||
があります。
|
||||
|
||||
インストールは
|
||||
make install
|
||||
make install.man
|
||||
で行ないます、
|
||||
|
||||
インストールディレクトリの指定は configure.h の変更で行なえます。
|
||||
Locale 対応のソースが入りました。configure.h の中で、 HasLocale を YES
|
||||
にして下さい。その他にも、 configure.h の修正はかなり行ないましたが、
|
||||
|
@ -33,7 +33,7 @@ XCOMM
|
||||
#ifdef MlvwmLibDir
|
||||
MLVWMLIBDIR = MlvwmLibDir
|
||||
#else
|
||||
MLVWMLIBDIR = $(USRLIBDIR)/mlvwm
|
||||
MLVWMLIBDIR = $(USRLIBDIR)/X11/mlvwm
|
||||
#endif
|
||||
|
||||
#ifndef HasLocale
|
||||
@ -69,7 +69,7 @@ XCOMM
|
||||
#endif
|
||||
|
||||
XCOMM
|
||||
XCOMM CDEBUGFLAGS = -g -Wall -Wshadow
|
||||
CDEBUGFLAGS = -g -Wall -Wshadow
|
||||
XCOMM CDEBUGFLAGS = -O2 -Wall
|
||||
XCOMM CDEBUGFLAGS = -g -Wall
|
||||
XCOMM CDEBUGFLAGS = -g
|
||||
|
8
man/Imakefile
Normal file
8
man/Imakefile
Normal file
@ -0,0 +1,8 @@
|
||||
XCOMM Imakefile for MLVWM
|
||||
|
||||
#include "../configure.h"
|
||||
|
||||
XCOMM Do not change from here !
|
||||
|
||||
all::
|
||||
InstallManPage(mlvwm,$(MANDIR))
|
372
man/mlvwm.man
Executable file
372
man/mlvwm.man
Executable file
@ -0,0 +1,372 @@
|
||||
.\" t
|
||||
.\" @(#)mlvwm.1
|
||||
'\"macro stdmacro
|
||||
.de EX \"Begin example
|
||||
.ne 5
|
||||
.if n .sp 1
|
||||
.if t .sp .5
|
||||
.nf
|
||||
.in +.5i
|
||||
..
|
||||
.de EE
|
||||
.fi
|
||||
.in -.5i
|
||||
.if n .sp 1
|
||||
.if t .sp .5
|
||||
..
|
||||
.ta .3i .6i .9i 1.2i 1.5i 1.8i
|
||||
.nr X
|
||||
.TH mlvwm 1 "11 Feb 1997"
|
||||
.SH NAME
|
||||
mlvwm \- Macintosh Like Virtual Window Manager
|
||||
.SH SYNOPSIS
|
||||
\fBmlvwm \fP[ \fB\-f\fP \fIinitfile\fP ] [ \fB\-d\fP \fIdpy\fP ]
|
||||
[ \fB\-debug\fP ]
|
||||
|
||||
|
||||
.SH DESCRIPTION
|
||||
.I mlvwm
|
||||
is a window manager for X11 designed to look and feel like
|
||||
the Macintosh<tm> environment. It provides multiple desktops, separate
|
||||
menu bars for different applications, and the ability to interact with
|
||||
applications from that menu bar. It does this by sending key sequences
|
||||
to the application, such as ctrl-X or alt-Y.
|
||||
|
||||
.SH OPTIONS
|
||||
These are the command line options that are recognized by \fImlvwm\fP:
|
||||
.IP "\fB-f\fP \fIconfig_file\fP"
|
||||
Causes \fImlvwm\fP to use \fIconfig_fule\fP as it's configuration file.
|
||||
.IP "\fB-d\fP \fIdisplay_name\fP"
|
||||
Brings \fImlvwm\fP on display \fIdisplay_name\fP instead of the name
|
||||
taken from the DISPLAY environment variable.
|
||||
.IP "\fB-debug\fP"
|
||||
Debug mode. Displays debugging information.
|
||||
|
||||
.SH CONFIGURATION FILES
|
||||
The configuration file is used to describe shortcut key bindings, menus,
|
||||
fonts, and various other settings. It is typically ".mlvwmrc" in your
|
||||
home directory, and if that does not exist it falls back to the system
|
||||
default. A different config file can be defined using the -f option
|
||||
shown above.
|
||||
|
||||
Lines beginning with '#' are ignored by \fImlvwm\fP.
|
||||
|
||||
.SH BUILT IN FUNCTIONS
|
||||
There are a number of built in functions in \fImlvwm\fP that may be
|
||||
used in the configuration file. If there is an error in the config file,
|
||||
\fImlvwm\fP will try it's best to go on. If it can't find a particular
|
||||
icon, it will complain on startup and leave the space blank where the
|
||||
icon was meant to go. Likewise, if you have a command misspelled or something
|
||||
to that effect, it will simply put up an error message and continue on
|
||||
through the rest of the config file.
|
||||
|
||||
The following commands can be used in menus, keyboard short cuts,
|
||||
and anything else along those lines:
|
||||
|
||||
.IP "\fBExec\fP \fIapp_name command\fP"
|
||||
Executes an external command as stated by \fIcommand\fP. \fIapp_name\fP
|
||||
should be set to whatever the name of the application is that will be
|
||||
executed.
|
||||
.IP "\fBNop\fP"
|
||||
Does nothing.
|
||||
.IP "\fBRefresh\fP"
|
||||
Refreshes the screen.
|
||||
.IP "\fBRestart\fP [\fIwindow_manager\fP]"
|
||||
Restarts \fImlvwm\fP or, if \fIwindow_mananger\fP is defined, restart into
|
||||
that window manager.
|
||||
.IP "\fBExit\fP\t"
|
||||
Quits \fImlvwm\fP.
|
||||
.IP "\fBDesk\fP [\fI+\fP|\fI-\fP|\fInumber\fP]"
|
||||
Changes desktops to \fInumber\fP or, if + or - is the argument, goes up
|
||||
one or down one desktop, respectively.
|
||||
.IP "\fBNextWindow\fP"
|
||||
Switches to the next active window. Windows that are hidden or defined
|
||||
in SkipSelect are not chosen. This includes windows in other desktops
|
||||
in it's list of windows to choose from.
|
||||
.IP "\fBPreviousWindow\fP"
|
||||
Swtiches to the previous active window. Windows that are hidden or defined
|
||||
in SkipSelect are not chosen. This includes windows in other desktops
|
||||
in it's list of windows to choose from.
|
||||
.IP "\fBNextSameDeskWindow\fP"
|
||||
Switches to the next active window. Windows that are hidden or defined
|
||||
in SkipSelect are not chosen. Windows in other desktops are not chosen.
|
||||
.IP "\fBPreviousSameDeskWindow\fP"
|
||||
Switches to the previous active window. Windows that are hidden or defined
|
||||
in SkipSelect are not chosen. Windows in other desktops are not chosen.
|
||||
.IP "\fBShadedUnShadeActive\fP"
|
||||
Shades or UnShades active window.
|
||||
.IP "\fBHideActive\fP"
|
||||
Hides active window.
|
||||
.IP "\fBHideOthers\fP"
|
||||
Hides all other windows except the active one.
|
||||
.IP "\fBShowAll\fP"
|
||||
All hidden windows are unhidden.
|
||||
.IP "\fBMoveWindow\fP"
|
||||
Move a window, chosen after this command is selected.
|
||||
.IP "\fBResizeWindow\fP"
|
||||
Resize a window, chosen after this command is selected.
|
||||
.IP "\fBKillWindow\fP"
|
||||
Kills a chosen window.
|
||||
.IP "\fBSendMessage\fP \fIsequence\fP"
|
||||
A keypress is sent to the active window. The keys pressed are defined
|
||||
in a similar fashion to those in the ShortCut command. You specify a
|
||||
special key with it's corresponding capital letter identifier and a +
|
||||
symbol. For instance, if you wanted to set the sequence: Ctrl-x, you
|
||||
would use C+x.
|
||||
.IP "\fBWait\fP [\fIApplication name|\fIApplication class\fP]"
|
||||
Wait to start application.
|
||||
.IP "\fBShowBalloon\fP"
|
||||
This function can be bound to a key in order to show balloon.
|
||||
|
||||
.SH DESCRIPTION
|
||||
The following commands are used to change or describe \fImlvwm\fP's
|
||||
functionality:
|
||||
|
||||
.IP "\fBDesktopnum\fP \fInum\fP"
|
||||
The number of desktops available. Defaults to 1.
|
||||
.IP "\fBStickShade\fP"
|
||||
Shaded windows are present no matter what desktop you are on, instead
|
||||
of staying on a particular desktop. This is not the default behavior.
|
||||
.IP "\fBStickHide\fP"
|
||||
Hidden windows are present no matter what desktop you are on, instead
|
||||
of staying on a particular desktop. This is not the default behavior.
|
||||
This means that if you hide a window in one desktop, and move to another,
|
||||
then unhide it, it will appear in that desktop, instead of the desktop
|
||||
it was originally in.
|
||||
.IP "\fBShadeMap\fP"
|
||||
When a window is unhidden, shading remains. The default is for shading
|
||||
to be canceled when a window is unhidden.
|
||||
.IP "\fBDoubleClickTime\fP \fItime\fP"
|
||||
The number of milliseconds in which you must click the mouse button twice
|
||||
in order to register a double click.
|
||||
.IP "\fBCompatible\fP"
|
||||
When windows are moved or resized, the border displayed is a dotted
|
||||
line instead of solid. This causes a slight speed decline.
|
||||
.IP "\fBFollowToMouse\fP"
|
||||
The active window is the window the mouse is currently over. If you move
|
||||
the mouse away from the current window and/or over another, you lose
|
||||
focus in the current one. This is not set up by default.
|
||||
.IP "\fBSlopyFocus\fP"
|
||||
It turns on FollowToMouse with the modification of not loosing
|
||||
focus when in the root window.
|
||||
.IP "\fBSystem8\fP"
|
||||
Change to window decoration to System 8(Only Color Monitor).
|
||||
.IP "\fBOpaqueMove\fP"
|
||||
Enable Opaque move.
|
||||
.IP "\fBOpaqueResize\fP"
|
||||
Enable Opaque resize.
|
||||
.IP "\fBOneClickMenu\fP"
|
||||
Click pull down menu and more one click execute selection.
|
||||
.IP "\fBZoomWait\fP \fIms\fB"
|
||||
Setting Hide animation speed. Default is 10ms. The unit is ms.
|
||||
.IP "\fBRotateDesk\fP"
|
||||
Rotate desktop number at Desk + and Desk -.
|
||||
.IP "\fBDisplayDeskNumber\fP"
|
||||
Display window name with desktop number on window list.
|
||||
.IP "\fBIconifyShade\fP"
|
||||
WindowShade is regarded as Inocify.
|
||||
.IP "\fBIconifyHide\fP"
|
||||
HideWindow is regarded as Iconify.
|
||||
.IP "\fBScrollBarWidth\fP \fIn\fP
|
||||
The variable scroll window is set \fIn\fP and defaults to 19 if
|
||||
unspecified.
|
||||
.IP "\fBFlushMenu\fP \fIspeed\fP \fIflashes\fP"
|
||||
Determines how fast the flashes are when you choose an option from a menu,
|
||||
as well as how many times it does so.
|
||||
.IP "\fBIconPath\fP \fIpath\fP"
|
||||
Specify the path \fImlvwm\fP is to search in order to find it's icons.
|
||||
Separate directories should be separated with a : and listed in the order
|
||||
you wish them to be searched. This needs to be defined before any
|
||||
references to icons are made.
|
||||
.IP "\fBIconMenuIcon\fP \fIicon\fP"
|
||||
This is the icon to be used with the windowlist menu on right side of the
|
||||
menu bar.
|
||||
.IP "\fBUseRootWin\fP"
|
||||
ignore button event on Root Window.
|
||||
.IP "\fBUseBalloon\fP \fIstr1\fP \fIstr2\fP, \fBIcon\fP \fIiconname\fP
|
||||
Use balloon help. str1 is displayed as menu item when Balloon help is
|
||||
not displayed.
|
||||
.IP "\fBInitFunction\fP"
|
||||
.IP "\fBRestartFunction\fP"
|
||||
Define the function when start and restart the mlvwm.
|
||||
.IP "\fBMenuBarFont\fP \fIfont\fP"
|
||||
The font the menu bar is to use.
|
||||
.IP "\fBMenuFont\fP \fIfont\fP"
|
||||
The font the menus are to use.
|
||||
.IP "\fBTitleBarFont\fP \fIfont\fP"
|
||||
The font on the title bars of windows.
|
||||
.IP "\fBRead\fP \fIfilename\fP"
|
||||
Reads in a separate configuration file.
|
||||
.IP "\fBRestartPreviousState\fP"
|
||||
It allows to regenerate the screen as it was before the
|
||||
previous window manager was shutdown or the current window
|
||||
manager was restarted.
|
||||
.IP "\fBMenu\fP \fIname\fP[, \fIoptions\fP] ... \fBEND\fP"
|
||||
Starts a menu block for the specified \fIname\fP menu. After the name of
|
||||
the menu, some options may be defined as listed below to change the behavior
|
||||
of that menu. All lines following the Menu command are read in as menu
|
||||
items until an \fBEND\fP statement is reached. Description of menu
|
||||
items will be discussed after the options.
|
||||
|
||||
Menu options are as follows:
|
||||
|
||||
\fBRight\fP - places the menu on the right side of the menu bar.
|
||||
|
||||
\fBLeft\fP - places the menu on the left side of the menu bar. This is default.
|
||||
|
||||
\fBIcon\fP \fIicon\fP - assigns an icon to be displayed on the menu
|
||||
bar instead of a label.
|
||||
|
||||
\fBLabel\fP \fIlabel\fP - assigns a label to be displayed on the menu
|
||||
bar instead of an icon.
|
||||
|
||||
\fBStick\fP - menu label is shown any time, in spite of the
|
||||
designation of which application it is associated with via the MenuBar
|
||||
command.
|
||||
|
||||
|
||||
\fBNonStick\fP - opposite of Stick. This is default.
|
||||
|
||||
|
||||
Menu items are described as follows:
|
||||
|
||||
"label" options
|
||||
|
||||
Multiple options are separated by commas. Options you can choose are as
|
||||
follows:
|
||||
|
||||
\fBGray\fP - grays out a menu item.
|
||||
|
||||
\fBBlack\fP - makes a menu item black.
|
||||
|
||||
\fBCheck\fP - places a check mark next to item.
|
||||
|
||||
\fBNonCheck\fP - doesn't place a check mark next to item.
|
||||
|
||||
\fBSelect\fP - makes a menu item selectable.
|
||||
|
||||
\fBNonSelect\fP - prevents a menu item from being selectable.
|
||||
|
||||
\fBSubMenu\fP \fIMenuName\fP
|
||||
A submenu is specified.
|
||||
|
||||
\fBIcon\fP \fIicon\fP - specifies an icon to place next to the menu
|
||||
item's label.
|
||||
|
||||
\fBAction\fP \fIcommand\fP - performs any built in \fIcommand\fP.
|
||||
|
||||
\fBSwallow\fP \fIappname\fP \fIoptions\fP
|
||||
Swallows an application into the menu bar. \fIoptions\fP are separated
|
||||
by commas. \fIappname\fP should match the name of the application that
|
||||
will be swallowed. The following options are allowed:
|
||||
|
||||
\fBRight\fP - places the menu on the right side of the menu bar. This
|
||||
is default.
|
||||
|
||||
\fBLeft\fP - places the menu on the left side of the menu bar.
|
||||
|
||||
\fBAction\fP \fIcommand\fP - performs any built in \fIcommand\fP.
|
||||
This is where an Exec should be performed of the application to be swallowed.
|
||||
|
||||
\fBStick\fP - menu label is shown any time, in spite of the
|
||||
designation of which application it is associated with via the MenuBar
|
||||
command. This is default.
|
||||
|
||||
\fBNonStick\fP - opposite of Stick.
|
||||
|
||||
.IP "\fBMenuBar\fP \fIappname\fP ... \fBEND\fP"
|
||||
This describes the names of the menus to be displayed, given a particular
|
||||
\fIappname\fP is active. The keyword \fBdefault\fP can be placed for
|
||||
\fIappname\fP to set up a menu bar for any application that does not
|
||||
have it's own specific menu bar. Menus are listed one per line after
|
||||
the MenuBar line, and closed off with an \fBEND\fP statement.
|
||||
|
||||
.IP "\fBStyle\fP \fIstrings\fP \fBEND\fP"
|
||||
This is used to describe certain attributes of particular windows, such
|
||||
as decorations, MenuBars, mini-icons, and various other attributes.
|
||||
The wildcards, * and ?, can be used. Lines are set up as follows:
|
||||
|
||||
"\fIappname\fP" \fIoptions\fP
|
||||
|
||||
Multiple \fIoptions\fP are separated by commas, and can be chosen from
|
||||
the following:
|
||||
|
||||
\fBNormalDecoration\fP - Places standard decorations (ie all the defaults)
|
||||
around a particular window.
|
||||
|
||||
\fBNoSbarH\fP - Horizontal scroll bar is removed.
|
||||
|
||||
\fBNoSbarV\fP - Vertical scroll bar is removed.
|
||||
|
||||
\fBNoResizeR\fP - no resize 'button'. This is automatic if both
|
||||
NoSbarH and NoSbarV are defined.
|
||||
|
||||
\fBNoTitle\fP - Removed title bar.
|
||||
|
||||
\fBNoMinMaxR\fP - Min/Max 'button' is removed. Automatic when NoTitle
|
||||
defined.
|
||||
|
||||
\fBNoCloseR\fP - Close 'button' is removed. Automatic when NoTitle defined.
|
||||
|
||||
\fBNoWinList\fP - Prevents window from being show on the window list.
|
||||
|
||||
\fBNoFocus\fP - Does not allow window to get focus.
|
||||
|
||||
\fBStayOnTop\fP - Window stays above all other windows on the screen.
|
||||
|
||||
\fBSticky\fP - Window stays on screen even if you change desktops.
|
||||
|
||||
\fBSkipSelect\fP - Prevents window from getting chosen by \fBNextWindow\fP,
|
||||
\fBPreviousWindow\fP, \fBPreviousSameDeskWindow\fP, and
|
||||
\fBNextSameDeskWindow\fP.
|
||||
|
||||
\fBEnableScroll\fP - Activates scroll bars.
|
||||
|
||||
\fBMaxmizeScale\fP - The percentage the window will increase in size
|
||||
when it maximized.
|
||||
|
||||
\fBMiniIcon\fP \fIicon\fP - \fIicon\fP is used to represent that
|
||||
particular window.
|
||||
|
||||
\fBNoTransientDecorate\fP - No decorations for transient window.
|
||||
|
||||
\fBMenuBar\fP \fImenubar\fP - Switches the menu bar to \fImenubar\fP when that
|
||||
application is active.
|
||||
|
||||
.IP "\fBShortCut\fP \fIstring\fP END"
|
||||
Binds key combinations to functions. Short cuts are listed one per line
|
||||
in the following format:
|
||||
|
||||
\fIKeyName\fP \fIKeyboardModifier\fP \fICommand\fP
|
||||
|
||||
After all Short cuts are listed, an END statement should be placed.
|
||||
KeyboardModifier's are as follows:
|
||||
|
||||
.EX
|
||||
\fBS\fP - Shift key
|
||||
\fBC\fP - Control key
|
||||
\fBM\fP - Mod1 key
|
||||
\fB1\fP - Mod1 key
|
||||
\fB2\fP - Mod2 key
|
||||
\fB3\fP - Mod3 key
|
||||
\fB4\fP - Mod4 key
|
||||
\fB5\fP - Mod5 key
|
||||
\fBA\fP - Any Modifier
|
||||
\fBN\fP - No Modifier
|
||||
.EE
|
||||
|
||||
.SH FILES
|
||||
.nf
|
||||
$HOME/.mlvwmrc
|
||||
$MLVWMLIBDIR/system.mlvwmrc
|
||||
.fi
|
||||
|
||||
.SH COPYRIGHT NOTICES
|
||||
This program is distributed as freeware. The copyright remains with
|
||||
the author.
|
||||
|
||||
Macintosh is a registered trademark of Apple Computer, Inc.
|
||||
|
||||
.SH AUTHOR
|
||||
TakaC HASEGAWA
|
||||
.I hase@rop2.hitachi-cable.co.jp
|
@ -1,6 +1,6 @@
|
||||
add_window.o: add_window.c /usr/include/stdio.h \
|
||||
/usr/include/sys/types.h /usr/include/machine/ansi.h \
|
||||
/usr/include/machine/types.h /usr/include/sys/cdefs.h \
|
||||
/usr/include/sys/types.h /usr/include/sys/cdefs.h \
|
||||
/usr/include/machine/ansi.h /usr/include/machine/types.h \
|
||||
/usr/include/machine/endian.h /usr/include/stdlib.h mlvwm.h \
|
||||
/usr/X11R6/include/X11/Xlib.h /usr/X11R6/include/X11/X.h \
|
||||
/usr/X11R6/include/X11/Xfuncproto.h /usr/X11R6/include/X11/Xosdefs.h \
|
||||
@ -11,8 +11,8 @@ add_window.o: add_window.c /usr/include/stdio.h \
|
||||
/usr/X11R6/include/X11/Xatom.h /usr/X11R6/include/X11/Xresource.h \
|
||||
/usr/X11R6/include/X11/extensions/shape.h
|
||||
balloon.o: balloon.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/include/machine/ansi.h /usr/include/machine/types.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/endian.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/ansi.h \
|
||||
/usr/include/machine/types.h /usr/include/machine/endian.h \
|
||||
/usr/include/stdlib.h mlvwm.h /usr/X11R6/include/X11/Xlib.h \
|
||||
/usr/X11R6/include/X11/X.h /usr/X11R6/include/X11/Xfuncproto.h \
|
||||
/usr/X11R6/include/X11/Xosdefs.h /usr/include/stddef.h \
|
||||
@ -22,8 +22,8 @@ balloon.o: balloon.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/include/sys/unistd.h event.h \
|
||||
/usr/X11R6/include/X11/extensions/shape.h
|
||||
borders.o: borders.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/include/machine/ansi.h /usr/include/machine/types.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/endian.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/ansi.h \
|
||||
/usr/include/machine/types.h /usr/include/machine/endian.h \
|
||||
/usr/include/stdlib.h /usr/include/string.h mlvwm.h \
|
||||
/usr/X11R6/include/X11/Xlib.h /usr/X11R6/include/X11/X.h \
|
||||
/usr/X11R6/include/X11/Xfuncproto.h /usr/X11R6/include/X11/Xosdefs.h \
|
||||
@ -33,8 +33,8 @@ borders.o: borders.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
misc.h /usr/include/unistd.h /usr/include/sys/unistd.h borders.h \
|
||||
/usr/X11R6/include/X11/extensions/shape.h
|
||||
config.o: config.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/include/machine/ansi.h /usr/include/machine/types.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/endian.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/ansi.h \
|
||||
/usr/include/machine/types.h /usr/include/machine/endian.h \
|
||||
/usr/include/stdlib.h /usr/include/string.h /usr/include/ctype.h \
|
||||
/usr/include/runetype.h mlvwm.h /usr/X11R6/include/X11/Xlib.h \
|
||||
/usr/X11R6/include/X11/X.h /usr/X11R6/include/X11/Xfuncproto.h \
|
||||
@ -44,8 +44,8 @@ config.o: config.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
screen.h menus.h config.h misc.h /usr/include/unistd.h \
|
||||
/usr/include/sys/unistd.h
|
||||
event.o: event.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/include/machine/ansi.h /usr/include/machine/types.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/endian.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/ansi.h \
|
||||
/usr/include/machine/types.h /usr/include/machine/endian.h \
|
||||
/usr/include/stdlib.h /usr/include/unistd.h /usr/include/sys/unistd.h \
|
||||
/usr/include/string.h /usr/include/sys/time.h /usr/include/time.h \
|
||||
/usr/X11R6/include/X11/Xatom.h mlvwm.h /usr/X11R6/include/X11/Xlib.h \
|
||||
@ -56,8 +56,8 @@ event.o: event.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
screen.h menus.h config.h borders.h add_window.h functions.h misc.h \
|
||||
balloon.h /usr/X11R6/include/X11/extensions/shape.h
|
||||
functions.o: functions.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/include/machine/ansi.h /usr/include/machine/types.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/endian.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/ansi.h \
|
||||
/usr/include/machine/types.h /usr/include/machine/endian.h \
|
||||
/usr/include/stdlib.h /usr/include/string.h /usr/include/unistd.h \
|
||||
/usr/include/sys/unistd.h mlvwm.h /usr/X11R6/include/X11/Xlib.h \
|
||||
/usr/X11R6/include/X11/X.h /usr/X11R6/include/X11/Xfuncproto.h \
|
||||
@ -67,8 +67,8 @@ functions.o: functions.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
screen.h menus.h config.h functions.h borders.h event.h misc.h \
|
||||
balloon.h
|
||||
menus.o: menus.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/include/machine/ansi.h /usr/include/machine/types.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/endian.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/ansi.h \
|
||||
/usr/include/machine/types.h /usr/include/machine/endian.h \
|
||||
/usr/include/stdlib.h /usr/include/string.h /usr/include/ctype.h \
|
||||
/usr/include/runetype.h mlvwm.h /usr/X11R6/include/X11/Xlib.h \
|
||||
/usr/X11R6/include/X11/X.h /usr/X11R6/include/X11/Xfuncproto.h \
|
||||
@ -81,8 +81,8 @@ menus.o: menus.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/X11R6/include/X11/Xresource.h \
|
||||
/usr/X11R6/include/X11/extensions/shape.h
|
||||
misc.o: misc.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/include/machine/ansi.h /usr/include/machine/types.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/endian.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/ansi.h \
|
||||
/usr/include/machine/types.h /usr/include/machine/endian.h \
|
||||
/usr/include/stdlib.h /usr/include/string.h /usr/include/ctype.h \
|
||||
/usr/include/runetype.h /usr/include/unistd.h \
|
||||
/usr/include/sys/unistd.h /usr/include/sys/time.h /usr/include/time.h \
|
||||
@ -92,8 +92,8 @@ misc.o: misc.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/X11R6/include/X11/cursorfont.h /usr/X11R6/include/X11/xpm.h \
|
||||
sun_headers.h /usr/include/sys/wait.h menus.h screen.h config.h
|
||||
mlvwm.o: mlvwm.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/include/machine/ansi.h /usr/include/machine/types.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/endian.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/ansi.h \
|
||||
/usr/include/machine/types.h /usr/include/machine/endian.h \
|
||||
/usr/include/stdlib.h /usr/include/signal.h /usr/include/sys/signal.h \
|
||||
/usr/include/machine/signal.h /usr/include/machine/trap.h \
|
||||
/usr/include/string.h /usr/include/unistd.h /usr/include/sys/unistd.h \
|
||||
@ -109,5 +109,5 @@ mlvwm.o: mlvwm.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/X11R6/include/X11/extensions/shape.h \
|
||||
/usr/X11R6/include/X11/Xlocale.h /usr/include/locale.h
|
||||
wild.o: wild.c /usr/include/stdio.h /usr/include/sys/types.h \
|
||||
/usr/include/machine/ansi.h /usr/include/machine/types.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/endian.h
|
||||
/usr/include/sys/cdefs.h /usr/include/machine/ansi.h \
|
||||
/usr/include/machine/types.h /usr/include/machine/endian.h
|
||||
|
@ -2,7 +2,7 @@ XCOMM Imakefile for MLVWM
|
||||
|
||||
#include "../configure.h"
|
||||
|
||||
VERSION = 0.8.9
|
||||
VERSION = 0.9.0
|
||||
COMPILE_OPTIONS = -DVERSION=\"$(VERSION)\" \
|
||||
-DCONFIGNAME=\"$(MLVWMRC)\" \
|
||||
-DMLVWMLIBDIR=\"$(MLVWMLIBDIR)\"
|
||||
|
@ -1,10 +1,10 @@
|
||||
VERSION=\"0.6.2\"
|
||||
CFLAGS = -g -Wall -DVERSION=$(VERSION) -fpcc-struct-return -DCONFIGNAME=\".mlvwmrc\"
|
||||
VERSION=\"0.9.0\"
|
||||
CFLAGS = -g -Wall -DVERSION=$(VERSION) -fpcc-struct-return -DCONFIGNAME=\".mlvwmrc\" -DUSE_LOCALE -DMLVWMLIBDIR=\"/usr/X11R6/lib/X11/mlvwm\"
|
||||
CC = gcc
|
||||
LDFLAGS = -lXpm -lXext -lX11
|
||||
CPPFLAGS = -I/usr/X11R6/include
|
||||
SRC = add_window.c borders.c config.c event.c menus.c mlvwm.c functions.c\
|
||||
sound.c
|
||||
SRC = add_window.c balloon.c borders.c config.c \
|
||||
event.c functions.c menus.c misc.c mlvwm.c wild.c
|
||||
OBJS = $(SRC:.c=.o)
|
||||
TARGET = mlvwm
|
||||
|
||||
|
@ -77,7 +77,7 @@ styles *lookupstyles( char *name, XClassHint *class )
|
||||
style = nptr;
|
||||
}
|
||||
}
|
||||
if( style->iconname && !(style->miniicon) )
|
||||
if( style && style->iconname && !(style->miniicon) )
|
||||
style->miniicon = ReadIcon( style->iconname, NULL, False );
|
||||
return style;
|
||||
}
|
||||
@ -576,14 +576,14 @@ MlvwmWindow *AddWindow( Window win )
|
||||
tmp_win->frame_y =
|
||||
tmp_win->attr.y+tmp_win->frame_h < Scr.MyDisplayHeight ?
|
||||
tmp_win->frame_y : Scr.MyDisplayHeight-tmp_win->frame_h-2;
|
||||
if( tmp_win->frame_y<MENUB_H )
|
||||
tmp_win->frame_y = MENUB_H;
|
||||
}
|
||||
else{
|
||||
tmp_win->frame_x -= diff_x;
|
||||
tmp_win->frame_y -= diff_y;
|
||||
}
|
||||
|
||||
if( tmp_win->frame_y<MENUB_H ) tmp_win->frame_y = MENUB_H;
|
||||
|
||||
valuemask = CWCursor | CWEventMask | CWBackPixel;
|
||||
|
||||
attributes.cursor = Scr.MlvwmCursors[TITLE_CURSOR];
|
||||
|
@ -283,6 +283,7 @@ void BalloonHelp( void )
|
||||
return;
|
||||
}
|
||||
|
||||
printf("flags %x\n", tmp_win->flags );
|
||||
if( Scr.Balloon==None ) CreateBalloonWindow();
|
||||
|
||||
BalloonSize( &one_line, &label_width, &offset, &width, &height, tmp_win );
|
||||
|
@ -152,11 +152,14 @@ char *SetMaxmizeScale( styles *tmp_style, char *str )
|
||||
if( (stop = strchr( str, ',' ))!=NULL ) *stop = '\0';
|
||||
if( strchr( SkipNonSpace(str), 'x' )){
|
||||
tmp_style->maxmizescale = 0;
|
||||
sscanf( str, "MaxmizeScale%dx%d",
|
||||
&(tmp_style->maxmizesize_w), &(tmp_style->maxmizesize_h) );
|
||||
if( sscanf( str, "MaxmizeScale%dx%d",
|
||||
&(tmp_style->maxmizesize_w), &(tmp_style->maxmizesize_h) )!=2 )
|
||||
DrawErrMsgOnMenu( "MaxmizeScale needs ", "width and height" );
|
||||
}
|
||||
else{
|
||||
if( sscanf( str, "MaxmizeScale%d", &(tmp_style->maxmizescale) )!=1 )
|
||||
DrawErrMsgOnMenu( "MaxmizeScale needs ", "size" );
|
||||
}
|
||||
else
|
||||
sscanf( str, "MaxmizeScale%d", &(tmp_style->maxmizescale) );
|
||||
if( stop ) stop++;
|
||||
else stop = str+strlen(str);
|
||||
|
||||
@ -238,7 +241,7 @@ void SetStyles( char *line, FILE *fp )
|
||||
int lp;
|
||||
|
||||
for( last = Scr.style_list; last && last->next; last=last->next );
|
||||
while( fgets( str, 256, fp )!=NULL && strncmp( str, "END", 3) ){
|
||||
while( fgetline( str, 256, fp )!=NULL && strncmp( str, "END", 3) ){
|
||||
if( str[0]=='#' ) continue;
|
||||
top = stripquote( str, &name );
|
||||
if( name==NULL ){
|
||||
@ -312,12 +315,12 @@ void SetStartFunction( char *line, FILE *fp )
|
||||
|
||||
if( (!strncmp( line, "InitFunction", 12 ) && Scr.Restarting) ||
|
||||
(!strncmp( line, "RestartFunction", 15 ) && !Scr.Restarting)){
|
||||
while( fgets( str, 256, fp )!=NULL && strncmp( str, "END", 3) );
|
||||
while( fgetline( str, 256, fp )!=NULL && strncmp( str, "END", 3) );
|
||||
return;
|
||||
}
|
||||
|
||||
new = &Scr.StartFunc;
|
||||
while( fgets( str, 256, fp )!=NULL && strncmp( str, "END", 3) ){
|
||||
while( fgetline( str, 256, fp )!=NULL && strncmp( str, "END", 3) ){
|
||||
if( str[0]=='#' ) continue;
|
||||
*new = calloc( 1, sizeof( ShortCut ) );
|
||||
top = SkipSpace( str );
|
||||
@ -335,7 +338,7 @@ void SetShortCut( char *line, FILE *fp )
|
||||
KeyCode keycode;
|
||||
int len, tag;
|
||||
|
||||
while( fgets( str, 256, fp )!=NULL && strncmp( str, "END", 3) ){
|
||||
while( fgetline( str, 256, fp )!=NULL && strncmp( str, "END", 3) ){
|
||||
if( str[0]=='#' ) continue;
|
||||
top = SkipSpace( str );
|
||||
end = SkipNonSpace( top );
|
||||
@ -469,7 +472,9 @@ void SetBarWidth( char *line, FILE *fp )
|
||||
|
||||
void SetMenuFlush( char *line, FILE *fp )
|
||||
{
|
||||
sscanf( line, "FlushMenu%d%d", &(Scr.flush_time), &(Scr.flush_times) );
|
||||
if( sscanf( line, "FlushMenu%d%d", &(Scr.flush_time), &(Scr.flush_times) )
|
||||
!=2 )
|
||||
DrawErrMsgOnMenu( "You must set FlushMenu", " length and times" );
|
||||
Scr.flush_time *= 1000;
|
||||
}
|
||||
|
||||
@ -698,10 +703,21 @@ void SetUseRootWin( char *line, FILE *fp )
|
||||
SubstructureNotifyMask );
|
||||
}
|
||||
|
||||
void SetEdgeResist( char *line, FILE *fp )
|
||||
{
|
||||
if( sscanf( line, "EdgeResistance%d%d", &(Scr.resist_x), &(Scr.resist_y) )
|
||||
!=2 ){
|
||||
DrawErrMsgOnMenu( "EdgeResistance needs ", "x force and y force" );
|
||||
Scr.resist_x = 0;
|
||||
Scr.resist_y = 0;
|
||||
}
|
||||
}
|
||||
|
||||
config_func main_config[]={
|
||||
{ "Desktopnum", SetDeskTopNum },
|
||||
{ "DoubleClickTime", SetDoubleClickTime },
|
||||
{ "DisplayDeskNumber", SetDisplayDeskNum },
|
||||
{ "EdgeResistance", SetEdgeResist },
|
||||
{ "FlushMenu", SetMenuFlush },
|
||||
{ "FollowToMouse", SetFollowToMouse },
|
||||
{ "Compatible", SetCompatible },
|
||||
@ -740,9 +756,9 @@ config_func main_config[]={
|
||||
|
||||
void ReadConfigFile( char *configfile )
|
||||
{
|
||||
int lp;
|
||||
FILE *fp;
|
||||
char str[256], *file, *cmp;
|
||||
char str[1024], *file, *cmp;
|
||||
int lp;
|
||||
#ifdef MLVWMLIBDIR
|
||||
char *sysrc;
|
||||
#endif
|
||||
@ -768,7 +784,7 @@ void ReadConfigFile( char *configfile )
|
||||
if( file ) free( file );
|
||||
return;
|
||||
}
|
||||
while( fgets( str, 256, fp )!=NULL ){
|
||||
while( fgetline( str, sizeof(str), fp )!=NULL ){
|
||||
if( Scr.flags & DEBUGOUT )
|
||||
DrawStringMenuBar( str );
|
||||
cmp = str;
|
||||
|
@ -255,6 +255,7 @@ MlvwmWindow *NextActiveWin( MlvwmWindow *t )
|
||||
!(NextActive->flags&NOWINLIST) &&
|
||||
!(NextActive->flags&SKIPSELECT) &&
|
||||
!(NextActive->flags&NOFOCUS) &&
|
||||
(!t->wmhints || t->wmhints->input!=False) &&
|
||||
NextActive->Desk==Scr.currentdesk)
|
||||
break;
|
||||
}
|
||||
@ -527,22 +528,43 @@ void MoveWindow( MlvwmWindow *mw, XEvent *evp )
|
||||
XDrawRectangle( dpy, Scr.Root, Scr.RobberGC,
|
||||
mw->frame_x-drag_x, mw->frame_y-drag_y,
|
||||
mw->frame_w, mw->frame_h );
|
||||
|
||||
/* Calc. edge resistance */
|
||||
/* edge inside the menu bar */
|
||||
if( mw->frame_y-pre_y+y<MENUB_H ){
|
||||
if( last_x==-1 ) last_x = x;
|
||||
x=last_x;
|
||||
y=pre_y-mw->frame_y+MENUB_H;
|
||||
if( last_x==-1 ) last_x = x;
|
||||
}
|
||||
/* edge<0 */
|
||||
if( y<MENUB_H ) x=last_x;
|
||||
else{
|
||||
last_x = -1;
|
||||
if( pre_x-x>0 && Scr.resist_x>abs(mw->frame_x-pre_x+x) &&
|
||||
mw->frame_x-pre_x+x<0 )
|
||||
x = pre_x-mw->frame_x;
|
||||
/* edge>display width */
|
||||
if( x-pre_x>0 && Scr.resist_x+Scr.MyDisplayWidth>
|
||||
abs(mw->frame_x+mw->frame_w-pre_x+x) &&
|
||||
mw->frame_x+mw->frame_w-pre_x+x>Scr.MyDisplayWidth )
|
||||
x = pre_x-mw->frame_x+Scr.MyDisplayWidth-mw->frame_w;
|
||||
/* edge>display height */
|
||||
if( y-pre_y>0 && Scr.resist_y+Scr.MyDisplayHeight>
|
||||
abs(mw->frame_y+mw->frame_h-pre_y+y) &&
|
||||
mw->frame_y+mw->frame_h-pre_y+y>Scr.MyDisplayHeight )
|
||||
y = pre_y-mw->frame_y+Scr.MyDisplayHeight-mw->frame_h;
|
||||
XWarpPointer( dpy, None, ev.xany.window, 0, 0, 0, 0, x, y );
|
||||
if( mw->frame_y-pre_y+y<MENUB_H ) y=pre_y-mw->frame_y+MENUB_H;
|
||||
|
||||
drag_x = pre_x-x;
|
||||
drag_y = pre_y-y;
|
||||
if( Scr.flags&OPAQUEMOVE )
|
||||
XMoveWindow( dpy, mw->frame,
|
||||
mw->frame_x-drag_x, mw->frame_y-drag_y );
|
||||
else
|
||||
XDrawRectangle( dpy, Scr.Root, Scr.RobberGC,
|
||||
mw->frame_x-drag_x, mw->frame_y-drag_y,
|
||||
mw->frame_w, mw->frame_h );
|
||||
XSync( dpy, 0 );
|
||||
}
|
||||
else last_x = -1;
|
||||
drag_x = pre_x-x;
|
||||
drag_y = pre_y-y;
|
||||
if( Scr.flags&OPAQUEMOVE )
|
||||
XMoveWindow( dpy, mw->frame,
|
||||
mw->frame_x-drag_x, mw->frame_y-drag_y );
|
||||
else
|
||||
XDrawRectangle( dpy, Scr.Root, Scr.RobberGC,
|
||||
mw->frame_x-drag_x, mw->frame_y-drag_y,
|
||||
mw->frame_w, mw->frame_h );
|
||||
XSync( dpy, 0 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -863,7 +885,7 @@ void ResizeWindow( MlvwmWindow *mw, XEvent *evp, Bool s_move )
|
||||
}
|
||||
if( !(Scr.flags&OPAQUERESIZE) ){
|
||||
XGrabServer( dpy );
|
||||
DrawResizeFrame( mw->frame_x, mw->frame_y, mw->frame_w, mw->frame_h, mw );
|
||||
DrawResizeFrame(mw->frame_x,mw->frame_y,mw->frame_w,mw->frame_h,mw);
|
||||
}
|
||||
while( !isEnd ){
|
||||
evmask = ButtonReleaseMask|ButtonMotionMask|PointerMotionMask;
|
||||
@ -906,15 +928,18 @@ void ResizeWindow( MlvwmWindow *mw, XEvent *evp, Bool s_move )
|
||||
}
|
||||
if( xmotion!=0 || ymotion!=0 ){
|
||||
if( !(Scr.flags&OPAQUERESIZE) )
|
||||
DrawResizeFrame( mw->frame_x, mw->frame_y, new_w, new_h, mw );
|
||||
DrawResizeFrame(mw->frame_x,mw->frame_y,new_w,new_h,mw);
|
||||
if( xmotion!=0 )
|
||||
new_w = org_w + (x - pre_x)*xmotion;
|
||||
if( ymotion!=0 )
|
||||
new_h = org_h + (y - pre_y)*ymotion;
|
||||
|
||||
if( new_w<4*SBAR_WH ) new_w = 4*SBAR_WH+1;
|
||||
if( new_h<4*SBAR_WH+(mw->flags & TITLE ? TITLE_HEIGHT : 0) )
|
||||
new_h = 4*SBAR_WH+(mw->flags & TITLE ? TITLE_HEIGHT : 0)+1;
|
||||
if( new_w<(mw->flags&SBARH?4*SBAR_WH:0) )
|
||||
new_w = (mw->flags*SBARH?4*SBAR_WH:0)+1;
|
||||
if( new_h<(mw->flags&SBARV?4*SBAR_WH:0)+
|
||||
(mw->flags&TITLE?TITLE_HEIGHT:0) )
|
||||
new_h = (mw->flags&SBARV?4*SBAR_WH:0)+
|
||||
(mw->flags&TITLE?TITLE_HEIGHT:0)+1;
|
||||
|
||||
ConstrainSize( mw, &new_w, &new_h );
|
||||
|
||||
@ -1686,6 +1711,7 @@ void HandleMapNotify( XEvent *ev )
|
||||
XMapWindow(dpy, tmp_win->frame);
|
||||
if( !(Scr.flags & FOLLOWTOMOUSE) &&
|
||||
!(Scr.flags&SLOPPYFOCUS) &&
|
||||
(!tmp_win->wmhints || tmp_win->wmhints->input!=False) &&
|
||||
!(tmp_win->flags&NOFOCUS) )
|
||||
SetFocus( tmp_win );
|
||||
}
|
||||
|
@ -354,23 +354,8 @@ Bool MapMenu( MenuLabel *m, int left, int right, int y, Bool side )
|
||||
int lp, items=0;
|
||||
int label_w, local_mw=0, height;
|
||||
MenuItem *mi;
|
||||
unsigned long valuemask;
|
||||
XSetWindowAttributes attributes;
|
||||
|
||||
if( m->LabelWin!=None ) RedrawMenu( m, True );
|
||||
if( m->PullWin==None ){
|
||||
valuemask = CWCursor | CWEventMask | CWBackPixel;
|
||||
attributes.background_pixel = WhitePixel( dpy, Scr.screen );
|
||||
attributes.cursor = Scr.MlvwmCursors[DEFAULT];
|
||||
attributes.event_mask = (SubstructureRedirectMask | ExposureMask |
|
||||
SubstructureNotifyMask | PointerMotionMask |
|
||||
EnterWindowMask | LeaveWindowMask );
|
||||
m->PullWin = XCreateWindow( dpy, Scr.Root, 0, 0, 10, 10 , 1,
|
||||
CopyFromParent, InputOutput,
|
||||
CopyFromParent,
|
||||
valuemask, &attributes );
|
||||
XSaveContext( dpy, m->PullWin, MenuContext, (caddr_t)m );
|
||||
}
|
||||
|
||||
if( m == &Scr.IconMenu && Scr.iconAnchor->next )
|
||||
SortMenuItem( &Scr.IconMenu, Scr.iconAnchor );
|
||||
@ -757,10 +742,14 @@ Bool SwallowMenu( MenuLabel *ml )
|
||||
if(!XGetWMNormalHints( dpy, ev.xmaprequest.window, &hints,
|
||||
&supplied ))
|
||||
hints.flags = 0;
|
||||
if((USSize | PSize ) & hints.flags )
|
||||
if((USSize | PSize ) & hints.flags ){
|
||||
ml->LabelWidth = hints.width;
|
||||
else
|
||||
ml->LabelHeight = hints.height;
|
||||
}
|
||||
else{
|
||||
ml->LabelWidth = attr.width;
|
||||
ml->LabelHeight = attr.height;
|
||||
}
|
||||
ml->LabelWin = ev.xmaprequest.window;
|
||||
ml->flags &= ~CANDELETE;
|
||||
if(XGetWMProtocols (dpy, ml->LabelWin, &protocols, &n)){
|
||||
@ -777,7 +766,7 @@ Bool SwallowMenu( MenuLabel *ml )
|
||||
else
|
||||
HandleEvents( ev );
|
||||
if( ev.type==MapNotify &&
|
||||
XFindContext( dpy, ev.xany.window, MlvwmContext, (caddr_t *)&tmp_win )
|
||||
XFindContext(dpy, ev.xany.window, MlvwmContext, (caddr_t *)&tmp_win)
|
||||
!=XCNOENT)
|
||||
DrawStringMenuBar( tmp_win->name );
|
||||
}
|
||||
@ -794,15 +783,18 @@ void CreateMenuLabel( MenuLabel *ml )
|
||||
if( ml->flags&SWALLOW ){
|
||||
if( SwallowMenu( ml ) ){
|
||||
XSetWindowBorderWidth( dpy, ml->LabelWin, 0 );
|
||||
XResizeWindow( dpy, ml->LabelWin, ml->LabelWidth, MENUB_H-2 );
|
||||
// XResizeWindow( dpy, ml->LabelWin, ml->LabelWidth, MENUB_H-2 );
|
||||
XReparentWindow( dpy, ml->LabelWin, Scr.MenuBar, 0, 0 );
|
||||
ml->LabelWidth += 16;
|
||||
ml->LabelWidth += 6;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if( ml->xpm )
|
||||
if( ml->xpm ){
|
||||
ml->LabelWidth = ml->xpm->width+16;
|
||||
ml->LabelHeight = ml->xpm->height;
|
||||
}
|
||||
else{
|
||||
ml->LabelHeight = 0;
|
||||
if( ml->LabelStr ){
|
||||
StrWidthHeight( MENUBARFONT, &width, NULL, NULL,
|
||||
ml->LabelStr, strlen(ml->LabelStr));
|
||||
@ -823,6 +815,18 @@ void CreateMenuLabel( MenuLabel *ml )
|
||||
CopyFromParent,
|
||||
valuemask, &attributes );
|
||||
XSaveContext( dpy, ml->LabelWin, MenuContext, (caddr_t)ml );
|
||||
|
||||
valuemask = CWCursor | CWEventMask | CWBackPixel;
|
||||
attributes.background_pixel = WhitePixel( dpy, Scr.screen );
|
||||
attributes.cursor = Scr.MlvwmCursors[DEFAULT];
|
||||
attributes.event_mask = (SubstructureRedirectMask | ExposureMask |
|
||||
SubstructureNotifyMask | PointerMotionMask |
|
||||
EnterWindowMask | LeaveWindowMask );
|
||||
ml->PullWin = XCreateWindow( dpy, Scr.Root, 0, 0, 10, 10 , 1,
|
||||
CopyFromParent, InputOutput,
|
||||
CopyFromParent,
|
||||
valuemask, &attributes );
|
||||
XSaveContext( dpy, ml->PullWin, MenuContext, (caddr_t)ml );
|
||||
}
|
||||
}
|
||||
|
||||
@ -1170,7 +1174,7 @@ void SetMenu( char *line, FILE *fp )
|
||||
}
|
||||
}
|
||||
|
||||
while( fgets( str, 256, fp )!=NULL && strncmp( str, "END", 3) ){
|
||||
while( fgetline( str, 256, fp )!=NULL && strncmp( str, "END", 3) ){
|
||||
if( str[0]=='#' ) continue;
|
||||
mode = SELECTON;
|
||||
label = NULL;
|
||||
@ -1239,7 +1243,7 @@ void SetMenuBar( char *line, FILE *fp )
|
||||
tmp_link = &(*tmp_link)->next;
|
||||
}
|
||||
}
|
||||
while( fgets( str, 256, fp )!=NULL && strncmp( str, "END", 3) ){
|
||||
while( fgetline( str, 256, fp )!=NULL && strncmp( str, "END", 3) ){
|
||||
if( str[0]=='#' ) continue;
|
||||
str[ strlen(str)-1] = '\0';
|
||||
for( tmp_l=Scr.MenuLabelRoot;
|
||||
@ -1357,8 +1361,9 @@ void MapMenuBar( MlvwmWindow *win )
|
||||
tmpml->LabelX = right-tmpml->LabelWidth-1;
|
||||
right = tmpml->LabelX;
|
||||
}
|
||||
if( tmpml->flags&SWALLOW )
|
||||
XMoveWindow( dpy, tmpml->LabelWin, tmpml->LabelX+8, 1 );
|
||||
if( tmpml->LabelHeight )
|
||||
XMoveWindow( dpy, tmpml->LabelWin,
|
||||
tmpml->LabelX+3, (MENUB_H-tmpml->LabelHeight)/2 );
|
||||
else
|
||||
XMoveWindow( dpy, tmpml->LabelWin, tmpml->LabelX, 1 );
|
||||
}
|
||||
@ -1385,7 +1390,8 @@ void MapMenuBar( MlvwmWindow *win )
|
||||
right = mlink->link->LabelX;
|
||||
}
|
||||
if( mlink->link->flags&SWALLOW )
|
||||
XMoveWindow( dpy, mlink->link->LabelWin, mlink->link->LabelX+8, 1);
|
||||
XMoveWindow( dpy, mlink->link->LabelWin,
|
||||
mlink->link->LabelX+3, (MENUB_H-mlink->link->LabelHeight)/2 );
|
||||
else
|
||||
XMoveWindow( dpy, mlink->link->LabelWin, mlink->link->LabelX, 1 );
|
||||
}
|
||||
@ -1590,4 +1596,15 @@ void CreateSimpleMenu( void )
|
||||
Scr.MenuLabelRoot->m_item->mode = SELECTON;
|
||||
Scr.MenuLabelRoot->m_item->label = strdup( "Quit" );
|
||||
Scr.MenuLabelRoot->m_item->action = strdup( "Exit" );
|
||||
|
||||
Scr.MenuRoot = calloc( 1, sizeof(Menu) );
|
||||
Scr.MenuRoot->link = calloc( 1, sizeof(MenuLink) );
|
||||
Scr.MenuRoot->link->link = Scr.MenuLabelRoot;
|
||||
if( !Scr.style_list ){
|
||||
Scr.style_list = calloc( 1, sizeof( styles ) );
|
||||
Scr.style_list->name = strdup("*");
|
||||
Scr.style_list->flags = NORMALWIN;
|
||||
Scr.style_list->maxmizescale = 90;
|
||||
Scr.style_list->menubar = Scr.MenuRoot;
|
||||
}
|
||||
}
|
||||
|
@ -63,6 +63,7 @@ typedef struct MenuLabel
|
||||
struct MenuLabel *next;
|
||||
Window LabelWin;
|
||||
int LabelWidth;
|
||||
int LabelHeight;
|
||||
char *LabelStr;
|
||||
char *name;
|
||||
char *action; /* use for swallow */
|
||||
|
32
mlvwm/misc.c
32
mlvwm/misc.c
@ -16,6 +16,31 @@
|
||||
#include "menus.h"
|
||||
#include "screen.h"
|
||||
|
||||
char *SkipSpace( char *str )
|
||||
{
|
||||
for( ; (*str==' ' || *str=='\t'); str++ );
|
||||
return str;
|
||||
}
|
||||
|
||||
char *fgetline( char *str, int size, FILE *fp )
|
||||
{
|
||||
int readlen;
|
||||
char strtmp[256];
|
||||
|
||||
if( fgets( str, size, fp )==NULL )
|
||||
return NULL;
|
||||
|
||||
readlen=strlen(str)-2;
|
||||
|
||||
while( str[readlen]=='\\'
|
||||
&& fgets( strtmp, sizeof(strtmp), fp)!=NULL ){
|
||||
str[readlen]='\0';
|
||||
snprintf( str, size, "%s%s", str, SkipSpace(strtmp) );
|
||||
readlen=strlen(str)-2;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
char *LookUpFiles( char *path, char *filename, int mode )
|
||||
{
|
||||
char *find;
|
||||
@ -26,6 +51,7 @@ char *LookUpFiles( char *path, char *filename, int mode )
|
||||
}
|
||||
if( path==NULL ) return NULL;
|
||||
do{
|
||||
path=SkipSpace( path );
|
||||
find = calloc( strlen(path)+strlen(filename)+2, 1 );
|
||||
if( strchr( path, ':' )==NULL ){
|
||||
sprintf( find, "%s/%s", path, filename );
|
||||
@ -78,12 +104,6 @@ char *stripspace_num( char *str )
|
||||
return action;
|
||||
}
|
||||
|
||||
char *SkipSpace( char *str )
|
||||
{
|
||||
for( ; (*str==' ' || *str=='\t'); str++ );
|
||||
return str;
|
||||
}
|
||||
|
||||
void sleep_a_little(int n)
|
||||
{
|
||||
struct timeval value;
|
||||
|
@ -9,6 +9,7 @@
|
||||
#define _MISC_
|
||||
#include <unistd.h>
|
||||
|
||||
extern char *fgetline( char *, int, FILE * );
|
||||
extern char *SkipNonSpace( char * );
|
||||
extern char *LookUpFiles( char *, char *, int );
|
||||
extern void sleep_a_little( int );
|
||||
|
@ -202,6 +202,8 @@ void InitScrParams( void )
|
||||
Scr.d_depth );
|
||||
Scr.StartFunc = NULL;
|
||||
Scr.flags |= STARTING;
|
||||
Scr.resist_x = 0;
|
||||
Scr.resist_y = 0;
|
||||
}
|
||||
|
||||
void InitGCs( void )
|
||||
@ -540,7 +542,7 @@ void DoStartFunc( void )
|
||||
}
|
||||
}
|
||||
|
||||
void main( int argc, char *argv[] )
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
char *display_name=NULL;
|
||||
char *display_string;
|
||||
@ -680,7 +682,7 @@ void main( int argc, char *argv[] )
|
||||
}
|
||||
XUngrabServer( dpy );
|
||||
if( !Scr.MenuLabelRoot ) CreateSimpleMenu();
|
||||
else CreateMenuItems();
|
||||
CreateMenuItems();
|
||||
for( Scr.iconAnchor = Scr.IconMenu.m_item;
|
||||
Scr.iconAnchor->next->next != NULL;
|
||||
Scr.iconAnchor = Scr.iconAnchor->next );
|
||||
@ -696,4 +698,5 @@ void main( int argc, char *argv[] )
|
||||
MapMenuBar( Scr.ActiveWin );
|
||||
|
||||
while( True ) WaitEvents();
|
||||
return 0;
|
||||
}
|
||||
|
@ -105,6 +105,7 @@ typedef struct ScreenInfo
|
||||
int bar_width;
|
||||
int flush_time;
|
||||
int flush_times;
|
||||
int resist_x, resist_y;
|
||||
int zoom_wait;
|
||||
|
||||
char *IconPath;
|
||||
|
@ -42,6 +42,9 @@ OpaqueMove
|
||||
# Double click time
|
||||
DoubleClickTime 300
|
||||
|
||||
# Edge resistance force
|
||||
EdgeResistance 50 50
|
||||
|
||||
## Show window name with desktop number on window list
|
||||
#DisplayDeskNumber
|
||||
|
||||
|
@ -20,6 +20,9 @@ StickyHide
|
||||
# ダブルクリックを認識する時間
|
||||
DoubleClickTime 300
|
||||
|
||||
# Edge resistance force
|
||||
EdgeResistance 50 50
|
||||
|
||||
## Icon化をShadeとする
|
||||
IconifyShade
|
||||
|
||||
@ -56,9 +59,12 @@ IconMenuIcon label2.xpm
|
||||
UseBalloon "Show Balloon Help" "Hide Balloon Help", Icon label3.xpm
|
||||
|
||||
# Font 設定(LOCALE設定ありのサンプル)
|
||||
MenuBarFont -*-*-*-r-*-*-16-*-*-*-*-*-*-*,-misc-marumoji-*-*-*-*-16-*-*-*-*-*-jisx0208.1983
|
||||
MenuFont -*-*-*-r-*-*-16-*-*-*-*-*-*-*,-misc-marumoji-*-*-*-*-16-*-*-*-*-*-jisx0208.1983
|
||||
TitleBarFont -*-*-*-r-*-*-16-*-*-*-*-*-*-*,-misc-marumoji-*-*-*-*-16-*-*-*-*-*-jisx0208.1983
|
||||
MenuBarFont -*-*-*-r-*-*-16-*-*-*-*-*-*-*,\
|
||||
-misc-marumoji-*-*-*-*-16-*-*-*-*-*-jisx0208.1983
|
||||
MenuFont -*-*-*-r-*-*-16-*-*-*-*-*-*-*,\
|
||||
-misc-marumoji-*-*-*-*-16-*-*-*-*-*-jisx0208.1983
|
||||
TitleBarFont -*-*-*-r-*-*-16-*-*-*-*-*-*-*,\
|
||||
-misc-marumoji-*-*-*-*-16-*-*-*-*-*-jisx0208.1983
|
||||
|
||||
# Settings of keyborad short cut
|
||||
ShortCut
|
||||
|
Loading…
Reference in New Issue
Block a user