Tue Jul 3 18:01:24 2001 Michael Jennings (mej)

All the docs and themes should now be up-to-date.  Unless a
showstopping bug turns up in the near future, this is pretty much it
for 0.9.1.  Now we just need some testing to make sure there's
nothing horridly wrong....  So you all can test while we finish up
the web site and the backgrounds. :-)


SVN revision: 4919
This commit is contained in:
Michael Jennings 2001-07-04 01:02:37 +00:00
parent c93158a595
commit 85fdcf3f30
18 changed files with 340 additions and 343 deletions

View File

@ -4280,3 +4280,11 @@ Thu Jun 28 19:01:05 2001 Michael Jennings (mej)
Finished updating the man page for 0.9.1.
----------------------------------------------------------------------
Tue Jul 3 18:01:24 2001 Michael Jennings (mej)
All the docs and themes should now be up-to-date. Unless a
showstopping bug turns up in the near future, this is pretty much it
for 0.9.1. Now we just need some testing to make sure there's
nothing horridly wrong.... So you all can test while we finish up
the web site and the backgrounds. :-)
----------------------------------------------------------------------

View File

@ -34,7 +34,7 @@ have the Imlib library installed.
# macros I use for compatibility with older versions of the macro
%configure --bindir=%{_bindir} --libdir=%{_libdir} --mandir=%{_mandir} \
--datadir=%{_datadir} --sysconfdir=%{_sysconfdir} \
--with-backspace=bs --with-delete=execute
--with-backspace=bs --with-delete=execute --enable-multi-charset
make
%install

View File

@ -302,6 +302,7 @@
#undef IMLIB_TRANS
#undef KS_DELETE
#undef NO_DELETE_KEY
#undef X_LOCALE
#undef NO_XLOCALE
#undef UTMP_SUPPORT
#undef MULTI_CHARSET

View File

@ -312,7 +312,7 @@ echo " the --x-libraries parameter to configure.";
AC_CHECK_LIB(Xext, XShapeQueryExtension, AC_DEFINE(HAVE_X_SHAPE_EXT))
# check if we need X_LOCALE definition
AC_CHECK_LIB(X11, _Xsetlocale, , AC_DEFINE(NO_XLOCALE))
AC_CHECK_LIB(X11, _Xsetlocale, AC_DEFINE(X_LOCALE), AC_DEFINE(NO_XLOCALE))
# For multibyte selection handling
if test "$MULTICHAR_ENCODING" != "none"; then

View File

@ -265,11 +265,8 @@ are the horizontal/vertical alignment percentages, and
.I ops
is a colon-delimited list of operations:
.BR tiled " (to tile the image), "
.BR scaled " (for horizontal and vertical scaling), "
.BR hscaled " (for horizontal scaling), "
.BR vscaled " (for vertical scaling), and "
.BR propscaled " (for proportional scaling)."
Note that some of these operations can be combined for various effects.
Note that these operations can be combined for various effects.
.TP
.BI \-I " pic" ", \-\-icon " pic
Sets the icon pixmap file to
@ -1129,11 +1126,8 @@ are the horizontal/vertical alignment percentages, and
.I ops
is a colon-delimited list of operations:
.BR tiled " (to tile the image), "
.BR scaled " (for horizontal and vertical scaling), "
.BR hscaled " (for horizontal scaling), "
.BR vscaled " (for vertical scaling), and "
.BR propscaled " (for proportional scaling)."
Note that some of these operations can be combined for various effects.
Note that these operations can be combined for various effects.
.RE
.RE

View File

@ -82,10 +82,9 @@ Portions of this document were taken from the XTerm documentation.</P>
</TR>
<TR>
<TD><TT>ENQ</TT></TD>
<TD>Enquiry (Ctrl-E), Send Device Attributes (DA). Eterm replies with the
string defined by ESCZ_ANSWER in src/feature.h, which is
<TT><B>ESC[?1;2c</B></TT> by default. This response indicates a VT100
emulator with Advanced Video Option.</TD>
<TD>Enquiry (Ctrl-E), Send Device Attributes (DA). Eterm ignores
ENQ if NO_ENQ_ANS is defined, which it is by default in
<TT>src/feature.h</TT>.</TD>
</TR>
<TR>
<TD><TT>ESC</TT></TD>
@ -100,12 +99,12 @@ Portions of this document were taken from the XTerm documentation.</P>
<TD>Line Feed or New Line (Ctrl-J)</TD>
</TR>
<TR>
<TD><TT>SI</TT></TD>
<TD>Shift In (Ctrl-O), invokes the G0 (default) character set</TD>
<TD><TT>SO</TT></TD>
<TD>Shift Out (Ctrl-N), invokes the G1 (alternate) character set</TD>
</TR>
<TR>
<TD><TT>SO</TT></TD>
<TD>Shift Out (Ctrl-O), invokes the G1 (alternate) character set</TD>
<TD><TT>SI</TT></TD>
<TD>Shift In (Ctrl-O), invokes the G0 (default) character set</TD>
</TR>
<TR>
<TD><TT>SPC</TT></TD>
@ -162,6 +161,10 @@ Portions of this document were taken from the XTerm documentation.</P>
<TD><TT>ESC <B>&gt;</B></TT></TD>
<TD>Numeric Keypad (RMKX)</TD>
</TR>
<TR>
<TD><TT>ESC <B>@</B></TT></TD>
<TD>Discards the subsequent character</TD>
</TR>
<TR>
<TD><TT>ESC <B>D</B></TT></TD>
<TD>Index (IND)</TD>
@ -170,6 +173,13 @@ Portions of this document were taken from the XTerm documentation.</P>
<TD><TT>ESC <B>E</B></TT></TD>
<TD>Next Line (NEL)</TD>
</TR>
<TR>
<TD><TT>ESC <B>G</B></TT></TD>
<TD>Graphics (an rxvt extension). Eterm replies to <TT>ESC <B>G
Q</B></TT> (query graphics) with <TT>ESC <B>G 0</B></TT> (no
graphics available) and ignores all other graphics
sequences.</TD>
</TR>
<TR>
<TD><TT>ESC <B>H</B></TT></TD>
<TD>Tab Set (HTS)</TD>
@ -259,7 +269,7 @@ Portions of this document were taken from the XTerm documentation.</P>
<TD>Tabulator functions
<UL>
<LI><I>n</I> == 0: Tab Set (HTS)
<LI><I>n</I> == 2: Tab Clear (TBC), clear current column (default)
<LI><I>n</I> == 2: Tab Clear (TBC), clear current column
<LI><I>n</I> == 5: Tab Clear (TBC), clear all
</UL>
</TD>
@ -324,7 +334,7 @@ Portions of this document were taken from the XTerm documentation.</P>
</UL>
<UL>
<LI><I>n</I> == 4: Insert Mode (SMIR)/Replace Mode (RMIR)
<LI><I>n</I> == 20: Automatic Newline (LNM)/Normal Linefeed (LNM)
<LI><I>n</I> == 20: Automatic Newline/Normal Linefeed (LNM)
</UL>
</TD>
</TR>
@ -360,6 +370,10 @@ Portions of this document were taken from the XTerm documentation.</P>
<LI><I>n</I> == 7: Request display name (ignored by default for
security reasons)
<LI><I>n</I> == 8: Request version number in window title
<LI><I>n</I> == 9: Display pixmap/transparency status in
window title (See
<A HREF="#eterm_esc">below</A>.)
</UL>
</TD>
</TR>
@ -368,10 +382,12 @@ Portions of this document were taken from the XTerm documentation.</P>
<TD>Set Scrolling Region (CSR), where <I>t</I> is the top row and <I>b</I> is
the bottom row, defaults to the full screen</TD>
</TR>
<!--
<TR>
<TD><TT>ESC <B>[</B> [ <I>n</I> ] <B>x</B></TT></TD>
<TD>Request Terminal Parameters (DECREQTPARM)</TD>
</TR>
-->
<TR>
<TD><TT>ESC <B>[ ?</B> <I>n</I> [ <B>;</B> <I>n</I> ... ] { <B>h</B> | <B>l</B> | <B>s</B> | <B>r</B> | <B>t</B> }</TT></TD>
<TD>DEC Private Modes (shown as set/reset)
@ -401,6 +417,8 @@ Portions of this document were taken from the XTerm documentation.</P>
<LI><I>n</I> == 1000: (X11 Xterm mouse reporting) Do/Don't send mouse
coords on button press and release (see
<A HREF="#mouse">below</A>)
<LI><I>n</I> == 1010: Scroll to bottom on tty output
<LI><I>n</I> == 1012: Scroll to bottom on tty input
</UL>
</TD>
</TR>
@ -442,7 +460,13 @@ Portions of this document were taken from the XTerm documentation.</P>
<LI><I>n</I> == 0: Change icon name and window title to <I>string</I>
<LI><I>n</I> == 1: Change icon name to <I>string</I>
<LI><I>n</I> == 2: Change window title to <I>string</I>
<LI><I>n</I> == 3: Set text property <I>string</I> (format: var=value)
<LI><I>n</I> == 5: Steal input focus and raise window (See
<A HREF="#eterm_esc">below</A>.)
<LI><I>n</I> == 6: Eterm-specific escape sequences (See
<A HREF="#eterm_esc">below</A>.)
<LI><I>n</I> == 20: Image commands (see <A HREF="#image">below</A>)
<LI><I>n</I> == 30: Dump contents of scrollback to file <I>string</I>
<LI><I>n</I> == 39: Set the default foreground color to <I>string</I>
<LI><I>n</I> == 49: Set the default background color to <I>string</I>
<LI><I>n</I> == 50: Set font to <I>string</I>. rxvt/Eterm extensions:
@ -464,6 +488,17 @@ Portions of this document were taken from the XTerm documentation.</P>
</UL>
</TD>
</TR>
<TR>
<TD><TT>ESC <B>] P</B> <I>n rr gg bb</I></TT></TD>
<TD>Changes terminal color <I>n</I> ('0' through 'f') to the color
represented by the RGB values <I>rr</I>, <I>gg</I>, and
<I>bb</I>. (Compatible with Linux console.)</TD>
</TR>
<TR>
<TD><TT>ESC <B>] R</B></TT></TD>
<TD>Restores the original palette. (Compatible with Linux
console.)</TD>
</TR>
<TR>
<TD><TT>ESC <B>c</B></TT></TD>
<TD>Full Reset (RIS)</TD>
@ -556,29 +591,29 @@ Portions of this document were taken from the XTerm documentation.</P>
<H3><A NAME="image">Image Escape Sequences</A></H3>
<P>
The <I>string</I> supplied to the image escape sequence (above) consists of a
filename (which can be empty) followed by a semicolon, then one or more
geometry strings. The following table shows the valid geometry strings and
their affects on the background image:</P>
The <I>string</I> supplied to the image escape sequence (above)
consists of a filename (which can be empty) followed by a semicolon,
then one or more geometry strings. Each geometry string contains zero
or one scale/position adjustment and may optionally be followed by a
colon and one or more colon-delimited pixmap operations. The
following table shows the valid geometry strings and their affects on
the background image:</P>
<TABLE BORDER=2 CELLSPACING=2 CELLPADDING=5>
<TR>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>String</B></FONT></TD>
<TD BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Function</B></FONT></TD>
</TR>
<TR>
<TD><TT><B>?</B></TT></TD>
<TD>Query scale and position (generally disabled)</TD>
</TR>
<TR>
<TD COLSPAN=2 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Adjusting scaling and position</B></FONT></TD>
</TR>
<TR>
<TD><TT><I>W</I><B>x</B><I>H</I><B>+</B><I>X</I><B>+</B><I>Y</I></TT></TD>
<TD>Set scaling to <I>W</I>% by <I>H</I>%, and position to <I>X</I>% by
<I>Y</I>%. <I>W</I> and <I>H</I> are percentages of the original image
size. The position is a percentage, where <B>+50+50</B> centers the
image in the window.</TD>
<TD>Set scaling to <I>W</I>% by <I>H</I>%, and position to <I>X</I>%
by <I>Y</I>%. <I>W</I> and <I>H</I> are percentages of the
terminal window size. <I>X</I> and <I>Y</I> are also
percentages; e.g., <B>+50+50</B> centers the image in the
window.</TD>
</TR>
<TR>
<TD><TT><I>W</I><B>x</B><I>H</I><B>+</B><I>X</I></TT></TD>
@ -632,6 +667,25 @@ their affects on the background image:</P>
<TD><TT><B>0x</B><I>H</I></TT></TD>
<TD>Multiply vertical scaling factor by <I>H</I>%</TD>
</TR>
<TR>
<TD><TT><B>0x0</B></TT></TD>
<TD>No scaling (show image at normal size).</TD>
</TR>
<TR>
<TD COLSPAN=2 BGCOLOR="#999999"><FONT SIZE=+1 COLOR="#000000"><B>Pixmap Operations</B></FONT></TD>
</TR>
<TR>
<TD><TT><B>tile</B></TT></TD>
<TD>Tile image. Scaling/position modifiers above will affect the
tile size and origin.</TD>
</TR>
<TR>
<TD><TT><B>propscale</B></TT></TD>
<TD>When scaling, scale proportionally. That is, maintain the
proper aspect ratio for the image. Any portion of the
background not covered by the image is filled with the current
background color.</TD>
</TR>
</TABLE>
<P>
@ -644,8 +698,8 @@ Examples:</P>
"Canyon.jpg", scaling to 200% by 200%, and center it.
<LI>"<TT><B>\e]20;;100\007</B></TT>" -- Set scaling back to 100%
<LI>"<TT><B>\e]20;blackstone.png;0x0\007</B></TT>" -- Set background image to
"blackstone.png" and tile it
<LI>"<TT><B>\e]20;;0x0\007</B></TT>" -- Tile current image instead of scaling
"blackstone.png", centered and at original size
<LI>"<TT><B>\e]20;;:tile\007</B></TT>" -- Tile current image instead of scaling
</UL>
<H3><A NAME="mouse">Mouse Reporting</A></H3>
@ -1094,14 +1148,25 @@ are: <TT><B>1</B></TT>, <TT><B>on</B></TT>, <TT><B>yes</B></TT>, or (of course)
</TR>
<TR>
<TD><TT>ESC <B>] 6 ; 1 ;</B> [ <I>class</I> <B>;</B> ] <I>color</I> <B>;</B> <I>attribute</I> <B>;</B> <I>value</I> BEL</TT></TD>
<TD>Adjusts a color modifier. <I>class</I> determines which image class will
have its color modifier altered, <B>bg</B> (background, the default),
<B>sb</B> (scrollbar trough), <B>sa</B> (scrollbar anchor), <B>up</B>
(up arrow), or <B>down</B> (down arrow). Next comes the <I>color</I>
which determines how pixels are modified. This is either
<B>image</B>, <B>red</B>, <B>green</B>, or <B>blue</B>.
<I>attribute</I> is one of <B>brightness</B>, <B>contrast</B>, or
<B>gamma</B>, and <I>value</I> is the actual integer value (>= 0).</TD>
<TD>Adjusts a color modifier. <I>class</I> determines which image
class will have its color modifier altered: <B>bg</B>
(background, the default), <B>up</B> (up arrow), <B>down</B>
(down arrow), <B>sb</B> (scrollbar trough), <B>sa</B> (scrollbar
anchor), <B>st</B> (scrollbar thumb), <B>menu</B> (popup menu
background), <B>menuitem</B> (popup menu items), <B>submenu</B>
(menu items which represent submenus), <B>button</B> (buttons on
the buttonbar), or <B>bbar</B> (buttonbar). Next comes the
<I>color</I> which determines how pixels are modified. This is
either <B>image</B>, <B>red</B>, <B>green</B>, or <B>blue</B>.
<I>attribute</I> is one of <B>brightness</B>, <B>contrast</B>,
or <B>gamma</B>, and <I>value</I> is the actual integer value
(>= 0). As stated in the man page, 256 (0x100) is 100%.</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 6 ; 2 ;</B> { <B>shade</B> | <B>tint</B> } [ <I>class</I> <B>;</B> ] <I>value</I> BEL</TT></TD>
<TD>Shade/tint the specified <I>class</I> (see above). For shading,
<I>value</I> is the shade percentage. For tinting, it is the
tint color or mask.</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 6 ; 3 ;</B> BEL</TT></TD>
@ -1132,6 +1197,10 @@ are: <TT><B>1</B></TT>, <TT><B>on</B></TT>, <TT><B>yes</B></TT>, or (of course)
focus and disappears when it does not).
</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 6 ; 14 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
<TD>Set/toggle display of buttonbars.</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 6 ; 20 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
<TD>Set/toggle visual bell.</TD>
@ -1159,7 +1228,11 @@ are: <TT><B>1</B></TT>, <TT><B>on</B></TT>, <TT><B>yes</B></TT>, or (of course)
</TR>
<TR>
<TD><TT>ESC <B>] 6 ; 26 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
<TD>Set/toggle reporting as keysyms See the man page for details.</TD>
<TD>Set/toggle reporting as keysyms. See the man page for details.</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 6 ; 27 </B> [ <B>;</B> <I>boolean</I> ] BEL</TT></TD>
<TD>Set/toggle the refusal of keyboard input and focus.</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 6 ; 50 ;</B> <I>desktop</I> BEL</TT></TD>
@ -1169,69 +1242,36 @@ are: <TT><B>1</B></TT>, <TT><B>on</B></TT>, <TT><B>yes</B></TT>, or (of course)
</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 6 ; 70 </B> BEL</TT></TD>
<TD>Exit Eterm (most useful from a menu).</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 6 ; 71</B> [ ;</B> <I>path</I> ] BEL</TT></TD>
<TD>Saves the current configuration to the current theme directory, or to
<I>path</I> if specified. If a file of the same name already exists, it
is renamed to <I>path</I><TT>.<I>YYYYMMDD.HHMMSS</I></TT> (where
<TT><I>YYYYMMDD.HHMMSS</I></TT> is the current system time).
<TD><TT>ESC <B>] 6 ; 72</B> [ ;</B> <I>string</I> ] BEL</TT></TD>
<TD>Search for and highlight any occurances of <I>string</I> in the
scrollback buffer.
</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 6 ; 80 ;</B> <I>level</I> BEL</TT></TD>
<TD>Set the debugging level to <I>level</I>.</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 7 ; </B> { <B>echo</B> | <B>tty_write</B> } <B>:</B> <I>params</I> BEL</TT></TD>
<TD>Eterm IPC: Sends the string <I>params</I> to the client application.</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 7 ; parse :</B> <I>params</I> BEL</TT></TD>
<TD>Eterm IPC: Causes Eterm to parse <I>params</I> itself.</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 7 ; enl_send :</B> <I>params</I> BEL</TT></TD>
<TD>Eterm IPC: Sends an IPC command to Enlightenment. Does not wait for a
reply.</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 7 ; enl_query :</B> <I>params</I> BEL</TT></TD>
<TD>Eterm IPC: Sends an IPC command to Enlightenment and waits for a reply.</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 7 ; winop :</B> <I>op</I> [ <I>windowid</I> ] BEL</TT></TD>
<TD>Eterm IPC: Performs a window operation on the window given by
<I>windowid</I>. Valid window operations are <B>raise</B>,
<B>lower</B>, <B>map</B>, <B>unmap</B>, <B>kill</B>, and
<B>iconify</B>. The operation should be separated from the
window ID by a space. The default window is the Eterm window itself.</TD>
</TR>
<TR>
<TD><TT>ESC <B>] 7 ; exit BEL</TT></TD>
<TD>Eterm IPC: Exits Eterm.</TD>
</TR>
</TABLE>
<H3><A NAME="trans">Transparency</A></H3>
<P>
The standard for implementing transparency was a mutual effort between myself,
Carsten Haitzler &lt;raster@redhat.com&gt;, Gerald Britton &lt;gbritton@mit.edu&gt;, and
Nat Friedman &lt;nat@nat.org&gt;, based off of an original idea by Nat. First I'll
define the standard, then I'll discuss its justification.</P>
The standard for implementing transparency was a mutual effort between
myself, Carsten Haitzler &lt;raster@rasterman.com&gt;, Gerald Britton
&lt;gbritton@mit.edu&gt;, and Nat Friedman &lt;nat@nat.org&gt;, based
off of an original idea by Nat. First I'll define the standard, then
I'll discuss its justification.</P>
<P>
There are two separate procedures for setting the transparency property (the
_XROOTPMAP_ID atom in X). The first is for persistent X clients such as window
managers. These clients should proceed through their normal mechanism for
setting the desktop image. Once the finalized pixmap has been created, the
_XROOTPMAP_ID property should be set on the desktop window (the same window
which will receive the pixmap...note that this is not necessarily the root
window), and its value should be set to the Pixmap ID. The following sample
code (taken from <A HREF="http://www.enlightenment.org/"
There are two separate procedures for setting the transparency
property (the _XROOTPMAP_ID atom in X). The first is for persistent X
clients such as window managers. These clients should proceed through
their normal mechanism for setting the desktop image. Once the
finalized pixmap has been created, the _XROOTPMAP_ID property should
be set on the desktop window (the same window which will receive the
pixmap...note that this is not necessarily the root window), and its
value should be set to the Pixmap ID. The following sample code
(taken from <A HREF="http://www.enlightenment.org/"
TARGET="_top">Enlightenment</A>) demonstrates this:</P>
<PRE>

View File

@ -26,12 +26,9 @@
# include <X11/Xproto.h>
# include <X11/keysym.h>
# ifdef NO_XLOCALE
# if defined(NO_XLOCALE) || !defined(HAVE_X11_LOCALE_H)
# include <locale.h>
# else
# ifndef X_LOCALE
# define X_LOCALE
# endif
# include <X11/Xlocale.h>
# endif
@ -202,7 +199,7 @@ if (test) PrivateModes |= (bit); else PrivateModes &= ~(bit);} while (0)
# endif
#endif
#define KBUFSZ 12 /* size of keyboard mapping buffer */
#define KBUFSZ 64 /* size of keyboard mapping buffer */
#define STRING_MAX 512 /* max string size for process_xterm_seq() */
#define ESC_ARGS 32 /* max # of args for esc sequences */

View File

@ -124,7 +124,6 @@ image_mode_any(unsigned char mode)
unsigned short
parse_pixmap_ops(char *str)
{
unsigned short op = OP_NONE;
char *token;
@ -155,7 +154,7 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
{'\0'};
unsigned int w = 0, h = 0;
int x = 0, y = 0;
unsigned short op = OP_NONE;
unsigned short op;
int flags;
unsigned short changed = 0;
char *p, *opstr;
@ -172,7 +171,9 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
}
if ((opstr = strchr(geom, ':')) != NULL) {
*opstr++ = '\0';
op |= parse_pixmap_ops(opstr);
op = parse_pixmap_ops(opstr);
} else {
op = pmap->op;
}
if ((p = strchr(geom, ';')) == NULL)
p = strchr(geom, '\0');
@ -189,13 +190,19 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
flags |= WidthValue; /* default is tile */
w = 0;
}
if (flags & WidthValue) {
if (!(flags & XValue)) {
x = 50;
}
if (!(flags & HeightValue))
h = w;
if (!(flags & XValue)) {
x = 50;
}
if (!(flags & HeightValue)) {
h = w;
}
if (!(flags & YValue)) {
if (flags & XNegative)
flags |= YNegative;
y = x;
}
if (flags & (WidthValue | HeightValue)) {
if (w && !h) {
w = pmap->w * ((float) w / 100);
h = pmap->h;
@ -203,35 +210,16 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
w = pmap->w;
h = pmap->h * ((float) h / 100);
}
/* If they want scaling, but didn't give a percentage, assume 100% */
if (op & OP_PROPSCALE) {
if (!w)
w = 100;
if (!h)
h = 100;
} else {
if ((op & OP_HSCALE) && !w) {
w = 100;
}
if ((op & OP_VSCALE) && !h) {
h = 100;
}
}
}
if (pmap->w != (int) w) {
pmap->w = (int) w;
changed++;
}
if (pmap->h != (int) h) {
pmap->h = (int) h;
changed++;
}
if (pmap->w != (int) w) {
pmap->w = (int) w;
changed++;
}
if (pmap->h != (int) h) {
pmap->h = (int) h;
changed++;
}
}
if (!(flags & YValue)) {
if (flags & XNegative)
flags |= YNegative;
y = x;
}
if (!(flags & WidthValue) && geom[0] != '=') {
x += pmap->x;
y += pmap->y;
@ -241,9 +229,9 @@ set_pixmap_scale(const char *geom, pixmap_t *pmap)
if (flags & YNegative)
y += 100;
}
BOUND(x, 0, 100);
BOUND(y, 0, 100);
x = (x <= 0 ? 0 : (x >= 100 ? 100 : x));
y = (y <= 0 ? 0 : (y >= 100 ? 100 : y));;
if (pmap->x != x) {
pmap->x = x;
changed++;
@ -1032,7 +1020,7 @@ render_simage(simage_t *simg, Window win, unsigned short width, unsigned short h
ysize = imlib_image_get_height();
D_PIXMAP(("w == %d, h == %d, x == %d, y == %d, xsize == %d, ysize == %d\n", w, h, x, y, xsize, ysize));
if ((simg->pmap->op & OP_PROPSCALE)) {
if ((simg->pmap->op & OP_PROPSCALE) && w && h) {
double x_ratio, y_ratio;
x_ratio = ((double) width) / ((double) xsize);

View File

@ -987,18 +987,9 @@ process_csi_seq(void)
return; /* An NPC. Punt. */
switch (ch) {
#ifdef PRINTPIPE
case 'i':
switch (arg[0]) {
case 0:
scr_printscreen(0); /* Print screen "\e[0i" */
break;
case 5:
process_print_pipe(); /* Start printing to print pipe "\e[5i" */
break;
}
case '@':
scr_insdel_chars((arg[0] ? arg[0] : 1), INSERT);
break;
#endif
case 'A':
case 'e': /* Cursor up n lines "\e[<n>A" */
scr_gotorc((arg[0] ? -arg[0] : -1), 0, RELATIVE);
@ -1023,9 +1014,6 @@ process_csi_seq(void)
case '`': /* Cursor to column n "\e[<n>G" */
scr_gotorc(0, (arg[0] ? arg[0] - 1 : +1), R_RELATIVE);
break;
case 'd': /* Cursor to row n "\e[<n>d" */
scr_gotorc((arg[0] ? arg[0] - 1 : +1), 0, C_RELATIVE);
break;
case 'H':
case 'f': /* Cursor to row r, column c "\e[<r>;<c>H" */
switch (nargs) {
@ -1043,29 +1031,39 @@ process_csi_seq(void)
case 'I': /* Tab right n tab stops "\e[<n>I" */
scr_tab(arg[0] ? +arg[0] : +1);
break;
case 'Z': /* Tab left n tab stops "\e[<n>Z" */
scr_tab(arg[0] ? -arg[0] : -1);
break;
case 'J': /* Clear part or all of screen, depending on n "\e[<n>J" */
scr_erase_screen(arg[0]);
break;
case 'K': /* Clear part or all of line, depending on n "\e[<n>K" */
scr_erase_line(arg[0]);
break;
case '@':
scr_insdel_chars((arg[0] ? arg[0] : 1), INSERT);
break;
case 'L':
scr_insdel_lines((arg[0] ? arg[0] : 1), INSERT);
break;
case 'M':
scr_insdel_lines((arg[0] ? arg[0] : 1), DELETE);
break;
case 'P':
scr_insdel_chars((arg[0] ? arg[0] : 1), DELETE);
break;
case 'W':
switch (arg[0]) {
case 0:
scr_set_tab(1);
break; /* = ESC H */
case 2:
scr_set_tab(0);
break; /* = ESC [ 0 g */
case 5:
scr_set_tab(-1);
break; /* = ESC [ 3 g */
}
break;
case 'X':
scr_insdel_chars((arg[0] ? arg[0] : 1), ERASE);
break;
case 'P':
scr_insdel_chars((arg[0] ? arg[0] : 1), DELETE);
case 'Z': /* Tab left n tab stops "\e[<n>Z" */
scr_tab(arg[0] ? -arg[0] : -1);
break;
case 'c':
@ -1073,6 +1071,31 @@ process_csi_seq(void)
tt_printf(VT100_ANS);
#endif
break;
case 'd': /* Cursor to row n "\e[<n>d" */
scr_gotorc((arg[0] ? arg[0] - 1 : +1), 0, C_RELATIVE);
break;
case 'g':
switch (arg[0]) {
case 0:
scr_set_tab(0);
break; /* delete tab */
case 3:
scr_set_tab(-1);
break; /* clear all tabs */
}
break;
#ifdef PRINTPIPE
case 'i':
switch (arg[0]) {
case 0:
scr_printscreen(0); /* Print screen "\e[0i" */
break;
case 5:
process_print_pipe(); /* Start printing to print pipe "\e[5i" */
break;
}
break;
#endif
case 'm':
process_sgr_mode(nargs, arg);
break;
@ -1170,29 +1193,6 @@ process_csi_seq(void)
scr_cursor(RESTORE);
}
break;
case 'g':
switch (arg[0]) {
case 0:
scr_set_tab(0);
break; /* delete tab */
case 3:
scr_set_tab(-1);
break; /* clear all tabs */
}
break;
case 'W':
switch (arg[0]) {
case 0:
scr_set_tab(1);
break; /* = ESC H */
case 2:
scr_set_tab(0);
break; /* = ESC [ 0 g */
case 5:
scr_set_tab(-1);
break; /* = ESC [ 3 g */
}
break;
}
}
@ -1293,7 +1293,9 @@ process_window_mode(unsigned int nargs, int args[])
int x, y;
Screen *scr;
Window dummy_child;
char buff[128], *name;
int dummy_x, dummy_y;
unsigned int dummy_border, dummy_depth;
char buff[1024], *name;
if (!nargs)
return;
@ -1302,16 +1304,9 @@ process_window_mode(unsigned int nargs, int args[])
return;
for (i = 0; i < nargs; i++) {
if (args[i] == 14) {
int dummy_x, dummy_y;
unsigned int dummy_border, dummy_depth;
/* Store current width and height in x and y */
XGetGeometry(Xdisplay, TermWin.parent, &dummy_child, &dummy_x, &dummy_y, (unsigned int *) (&x), (unsigned int *) (&y), &dummy_border, &dummy_depth);
}
switch (args[i]) {
case 1:
XRaiseWindow(Xdisplay, TermWin.parent);
XMapRaised(Xdisplay, TermWin.parent);
break;
case 2:
XIconifyWindow(Xdisplay, TermWin.parent, Xscreen);
@ -1330,8 +1325,8 @@ process_window_mode(unsigned int nargs, int args[])
return; /* Make sure there are 2 args left */
y = args[++i];
x = args[++i];
UPPER_BOUND(y, scr->height);
UPPER_BOUND(x, scr->width);
BOUND(y, szHint.min_height, scr->height);
BOUND(x, szHint.min_width, scr->width);
XResizeWindow(Xdisplay, TermWin.parent, x, y);
#ifdef USE_XIM
xim_set_status_position();
@ -1354,8 +1349,8 @@ process_window_mode(unsigned int nargs, int args[])
return; /* Make sure there are 2 args left */
y = args[++i];
x = args[++i];
UPPER_BOUND(y, scr->height / TermWin.fheight);
UPPER_BOUND(x, scr->width / TermWin.fwidth);
BOUND(y, 1, scr->height / TermWin.fheight);
BOUND(x, 1, scr->width / TermWin.fwidth);
XResizeWindow(Xdisplay, TermWin.parent,
Width2Pixel(x) + 2 * TermWin.internalBorder + (scrollbar_is_visible()? scrollbar_trough_width() : 0),
Height2Pixel(y) + 2 * TermWin.internalBorder);
@ -1368,6 +1363,8 @@ process_window_mode(unsigned int nargs, int args[])
tt_write((unsigned char *) buff, strlen(buff));
break;
case 14:
/* Store current width and height in x and y */
XGetGeometry(Xdisplay, TermWin.parent, &dummy_child, &dummy_x, &dummy_y, (unsigned int *) (&x), (unsigned int *) (&y), &dummy_border, &dummy_depth);
snprintf(buff, sizeof(buff), "\033[4;%d;%dt", y, x);
tt_write((unsigned char *) buff, strlen(buff));
break;
@ -1475,17 +1472,16 @@ process_terminal_mode(int mode, int priv, unsigned int nargs, int arg[])
PrivateModes &= ~(PrivMode_MouseX11);
break;
#ifdef scrollbar_esc
case scrollbar_esc:
PrivCases(PrivMode_scrollbar);
map_scrollbar(state);
break;
#endif
case 25: /* visible/invisible cursor */
PrivCases(PrivMode_VisibleCursor);
scr_cursor_visible(state);
break;
case 30:
PrivCases(PrivMode_scrollbar);
map_scrollbar(state);
break;
case 35:
PrivCases(PrivMode_ShiftKeys);
break;
@ -1737,9 +1733,10 @@ append_to_icon_name(const char *str)
/*
* XTerm escape sequences: ESC ] Ps;Pt BEL
* 0 = change iconName/title
* 1 = change iconName
* 0 = change icon name and window title
* 1 = change icon name
* 2 = change title
* 3 = set text property on window
* 46 = change logfile (not implemented)
* 50 = change font
*
@ -1796,35 +1793,7 @@ xterm_seq(int op, const char *str)
case XTerm_EtermSeq:
/* Eterm proprietary escape sequences
Syntax: ESC ] 6 ; <op> ; <arg> BEL
where <op> is: 0 Set/toggle transparency
1 Set color modifiers
3 Force update of pseudo-transparent background
10 Set scrollbar type/width
11 Set/toggle right-side scrollbar
12 Set/toggle floating scrollbar
13 Set/toggle popup scrollbar
20 Set/toggle visual bell
21 Set/toggle map alert
22 Set/toggle xterm selection behavior
23 Set/toggle triple-click line selection
24 Set/toggle viewport mode
25 Set/toggle selection of trailing spaces
30 Do not use
40 Do not use
50 Move window to another desktop
70 Exit Eterm
71 Save current configuration to a file
72 Search scrollback for a string
and <arg> is an optional argument, depending
on the particular sequence being used. It
(along with its preceeding semicolon) may or
may not be needed.
*/
/* Eterm proprietary escape sequences. See technical reference for details. */
D_CMD(("Got XTerm_EtermSeq sequence\n"));
nstr = (char *) strsep(&tnstr, ";");
eterm_seq_op = (unsigned char) strtol(nstr, (char **) NULL, 10);
@ -1832,9 +1801,8 @@ xterm_seq(int op, const char *str)
/* Yes, there is order to the numbers for this stuff. And here it is:
0-9 Image Class/Mode Configuration
10-19 Scrollbar/Buttonbar/Menu Configuration
20-29 Miscellaneous Toggles
30-39 Foreground/Text Color Configuration
40-49 Background Color Configuration
20-39 Miscellaneous Toggles
40-49 Foreground/Background Color Configuration
50-69 Window/Window Manager Configuration/Interaction
70+ Internal Eterm Operations
*/
@ -2230,7 +2198,7 @@ xterm_seq(int op, const char *str)
XSetWMHints(Xdisplay, TermWin.parent, wm_hints);
XFree(wm_hints);
break;
case 30:
case 40:
nstr = (char *) strsep(&tnstr, ";");
if (nstr) {
if (XParseColor(Xdisplay, cmap, nstr, &xcol) && XAllocColor(Xdisplay, cmap, &xcol)) {
@ -2239,7 +2207,7 @@ xterm_seq(int op, const char *str)
}
}
break;
case 40:
case 41:
nstr = (char *) strsep(&tnstr, ";");
if (nstr) {
if (XParseColor(Xdisplay, cmap, nstr, &xcol) && XAllocColor(Xdisplay, cmap, &xcol)) {

View File

@ -1,4 +1,4 @@
<Eterm-0.9>
<Eterm-0.9.1>
# ^- This must be the first line of any Eterm config file!
# Format is: <Eterm-VERSION> where VERSION is replaced by
# the version it was written for,
@ -144,7 +144,7 @@ begin imageclasses
color black #666666
file bar_vertical_3.png
# Here is how you specify the geometry string separately. See the man page for its syntax.
geom :scale
geom 100
border 2 2 2 3
end image
begin image
@ -153,11 +153,11 @@ begin imageclasses
state normal
color black #666666
file bar_vertical_1.png
geom :scale
geom 100
border 2 2 2 3
state selected
file bar_vertical_2.png
geom :scale
geom 100
border 2 2 2 3
end image
begin image
@ -166,11 +166,11 @@ begin imageclasses
state normal
color black #666666
file thumb_1.png
geom :scale
geom 100
border 3 3 3 3
state selected
file thumb_2.png
geom :scale
geom 100
border 3 3 3 3
end image
begin image
@ -179,15 +179,15 @@ begin imageclasses
state normal
color black #666666
file button_arrow_up_1.png
geom :scale
geom 100
border 2 2 2 2
state selected
file button_arrow_up_2.png
geom :scale
geom 100
border 2 2 2 2
state clicked
file button_arrow_up_3.png
geom :scale
geom 100
border 2 2 2 2
end image
begin image
@ -196,15 +196,15 @@ begin imageclasses
state normal
color black #666666
file button_arrow_down_1.png
geom :scale
geom 100
border 2 2 2 2
state selected
file button_arrow_down_2.png
geom :scale
geom 100
border 2 2 2 2
state clicked
file button_arrow_down_3.png
geom :scale
geom 100
border 2 2 2 2
end image
begin image
@ -213,11 +213,11 @@ begin imageclasses
state normal
color black #999999
file bar_horizontal_1.png
geom 100x100+0+0:scale
geom 100
border 2 3 2 3
state selected
file bar_horizontal_2.png
geom 100x100+0+0:scale
geom 100
border 2 3 2 3
end image
begin image
@ -226,17 +226,17 @@ begin imageclasses
state normal
color black #999999
file menu1.png
geom 100x100+0+0:scale
geom 100
border 3 15 3 3
padding 3 15 3 3
state selected
file menu2.png
geom 100x100+0+0:scale
geom 100
border 3 15 3 3
padding 3 15 3 3
state clicked
file menu3.png
geom 100x100+0+0:scale
geom 100
border 3 15 3 3
padding 3 15 3 3
end image
@ -246,7 +246,7 @@ begin imageclasses
state normal
color black #999999
file bar_horizontal_1.png
geom 100x100+0+0:scale
geom 100
border 2 3 2 2
state disabled
color white #333333
@ -259,15 +259,15 @@ begin imageclasses
state normal
color black #cccccc
file bar_horizontal_1.png
geom 100x100+0+0:scale
geom 100
border 2 3 2 2
state selected
file bar_horizontal_2.png
geom 100x100+0+0:scale
geom 100
border 2 3 2 2
state clicked
file bar_horizontal_3.png
geom 100x100+0+0:scale
geom 100
border 2 3 2 2
end image
end

View File

@ -1,4 +1,4 @@
<Eterm-0.9>
<Eterm-0.9.1>
# ^- This must be the first line of any Eterm config file!
# Format is: <Eterm-VERSION> where VERSION is replaced by
# the version it was written for,
@ -144,7 +144,7 @@ begin imageclasses
color black #666666
file bar_vertical_3.png
# Here is how you specify the geometry string separately. See the man page for its syntax.
geom :scale
geom 100
border 2 2 2 3
end image
begin image
@ -153,11 +153,11 @@ begin imageclasses
state normal
color black #666666
file bar_vertical_1.png
geom :scale
geom 100
border 2 2 2 3
state selected
file bar_vertical_2.png
geom :scale
geom 100
border 2 2 2 3
end image
begin image
@ -166,11 +166,11 @@ begin imageclasses
state normal
color black #666666
file thumb_1.png
geom :scale
geom 100
border 3 3 3 3
state selected
file thumb_2.png
geom :scale
geom 100
border 3 3 3 3
end image
begin image
@ -179,15 +179,15 @@ begin imageclasses
state normal
color black #666666
file button_arrow_up_1.png
geom :scale
geom 100
border 2 2 2 2
state selected
file button_arrow_up_2.png
geom :scale
geom 100
border 2 2 2 2
state clicked
file button_arrow_up_3.png
geom :scale
geom 100
border 2 2 2 2
end image
begin image
@ -196,15 +196,15 @@ begin imageclasses
state normal
color black #666666
file button_arrow_down_1.png
geom :scale
geom 100
border 2 2 2 2
state selected
file button_arrow_down_2.png
geom :scale
geom 100
border 2 2 2 2
state clicked
file button_arrow_down_3.png
geom :scale
geom 100
border 2 2 2 2
end image
begin image

View File

@ -1,4 +1,4 @@
<Eterm-0.9>
<Eterm-0.9.1>
# ^- This must be the first line of any Eterm config file!
# Format is: <Eterm-VERSION> where VERSION is replaced by
# the version it was written for,
@ -143,7 +143,7 @@ begin imageclasses
color black #666666
file bar_vertical_3.png
# Here is how you specify the geometry string separately. See the man page for its syntax.
geom :scale
geom 100
border 2 2 2 3
end image
begin image
@ -152,11 +152,11 @@ begin imageclasses
state normal
color black #666666
file bar_vertical_1.png
geom :scale
geom 100
border 2 2 2 3
state selected
file bar_vertical_2.png
geom :scale
geom 100
border 2 2 2 3
end image
begin image
@ -165,11 +165,11 @@ begin imageclasses
state normal
color black #666666
file thumb_1.png
geom :scale
geom 100
border 3 3 3 3
state selected
file thumb_2.png
geom :scale
geom 100
border 3 3 3 3
end image
begin image
@ -178,15 +178,15 @@ begin imageclasses
state normal
color black #666666
file button_arrow_up_1.png
geom :scale
geom 100
border 2 2 2 2
state selected
file button_arrow_up_2.png
geom :scale
geom 100
border 2 2 2 2
state clicked
file button_arrow_up_3.png
geom :scale
geom 100
border 2 2 2 2
end image
begin image
@ -195,15 +195,15 @@ begin imageclasses
state normal
color black #666666
file button_arrow_down_1.png
geom :scale
geom 100
border 2 2 2 2
state selected
file button_arrow_down_2.png
geom :scale
geom 100
border 2 2 2 2
state clicked
file button_arrow_down_3.png
geom :scale
geom 100
border 2 2 2 2
end image
begin image

View File

@ -1,4 +1,4 @@
<Eterm-0.9>
<Eterm-0.9.1>
# ^- This must be the first line of any Eterm config file!
# Format is: <Eterm-VERSION> where VERSION is replaced by
# the version it was written for,
@ -144,7 +144,7 @@ begin imageclasses
color black #666666
file bar_vertical_3.png
# Here is how you specify the geometry string separately. See the man page for its syntax.
geom :scale
geom 100
border 2 2 2 3
end image
begin image
@ -153,11 +153,11 @@ begin imageclasses
state normal
color black #666666
file bar_vertical_1.png
geom :scale
geom 100
border 2 2 2 3
state selected
file bar_vertical_2.png
geom :scale
geom 100
border 2 2 2 3
end image
begin image
@ -166,11 +166,11 @@ begin imageclasses
state normal
color black #666666
file thumb_1.png
geom :scale
geom 100
border 3 3 3 3
state selected
file thumb_2.png
geom :scale
geom 100
border 3 3 3 3
end image
begin image
@ -179,15 +179,15 @@ begin imageclasses
state normal
color black #666666
file button_arrow_up_1.png
geom :scale
geom 100
border 2 2 2 2
state selected
file button_arrow_up_2.png
geom :scale
geom 100
border 2 2 2 2
state clicked
file button_arrow_up_3.png
geom :scale
geom 100
border 2 2 2 2
end image
begin image
@ -196,15 +196,15 @@ begin imageclasses
state normal
color black #666666
file button_arrow_down_1.png
geom :scale
geom 100
border 2 2 2 2
state selected
file button_arrow_down_2.png
geom :scale
geom 100
border 2 2 2 2
state clicked
file button_arrow_down_3.png