1
0
mirror of https://github.com/gryf/wmaker.git synced 2026-04-25 10:01:26 +02:00

Update for 0.51.2-pre2

This commit is contained in:
dan
1999-03-09 14:58:01 +00:00
parent 60980735fe
commit 088c0ac230
108 changed files with 2998 additions and 2770 deletions
+4 -4
View File
@@ -81,6 +81,9 @@ WINGs bug fixes, WINGs color panel
Robert A. Holak <panthar@tradeservices.com>
bug fix
Michael Hokenson <logan@dct.com>
wkde2menu.pl script
IKARASHI Akira <ikarashi@itlb.te.noda.sut.ac.jp>
Workspace change bug fix
@@ -98,7 +101,7 @@ made autoarrange icons a runtime option, SHADOW_RESIZEBAR c-time option,
no workspace switch to the same workspace, dashed icon selection,
misclellaneous bug fixes
Alfredo K. Kojima <kojima@inf.ufrgs.br>
Alfredo K. Kojima <kojima@windowmaker.org>
Project maintainer
Jay Kominek <jkominek@xtn.net>
@@ -141,9 +144,6 @@ Dan Pascu <dan@services.iiruc.ro>
dock ghost (superfluous mode) fix, enhancement for scrollable menus,
clip, numerous other stuff, project maintainer
Kenneth W. Persinger Jr. <Kenn_Persinger@sector7.com>
tcl/tk dockit
Biagio Pippa <1993s017@educ.disi.unige.it>
fixed miniaturization with transient window
+15 -1
View File
@@ -1,3 +1,15 @@
Changes since version 0.51.1:
.............................
- maximize for full screen
- fixed problem with frame drawing in non-opaque
- fixed installation path prob [jmknoble@pobox.com]
- fixed bug moving window when only one window is on screen
- fixed bug with ignored GNUstep attributes
- fixed WPrefs crash in Mouse Preferences
- fixed crash bug in WINGs/wmaker startup
- added workaround for kde pager crash bug
Changes since version 0.51.0:
.............................
@@ -34,7 +46,9 @@ Changes since version 0.51.0:
- fixed crash with internal dialogs and multi-heads
- added standard colormap support to wrlib (taken from libXmu sources)
- fixed memory leak in attribute panel
- fixed bug with window that can get focus if both shaded and hidden.
- fixed crash with CalendarManager deiconify
- fixed heisencrash when mapping new windows
- fixed totally buggy wmaker.inst ~/.xinitrc checker
Changes since version 0.50.2:
.............................
+8 -4
View File
@@ -19,7 +19,7 @@ SUPPORTED PLATFORMS
- Solaris 2.6.0
- Solaris 2.7beta
- SCO Unix
- SGI Irix
- SGI Irix 5.x, 6.5
- OSF/1
- HP-UX
- AIX 4.1.4 / IBM PowerPC
@@ -421,6 +421,10 @@ like not being able to use a graphic format library you think you have
installed, look at the config.log file for clues of the problem.
== Error with loading fonts, even if they exist.
Try rebuilding without NLS support.
== Error when configuring
ltconfig: unrecognized option `--no-reexec'
@@ -487,9 +491,9 @@ CPP_PATH.
LOCALES/INTERNATIONALIZATION
============================
Window Maker has national language support.
To enable national language support, you must compile
Window Maker with some additional parameters.
Window Maker has national language support. To enable national language
support, you must compile Window Maker with some additional parameters.
0 - You must have the GNU gettext package installed. It can be
obtained at ftp://prep.ai.mit.edu/pub/gnu/gettext-nnn.tar.gz
+3 -3
View File
@@ -39,9 +39,9 @@ echo
echo "NOTE: If this script fails, read the INSTALL file and"
echo "install by hand."
echo
echo "Please read the INSTALL and FAQ files before e-mailing "
echo "questions. (we are lazy to reply questions already answered "
echo "there as much as you are lazy to read these ;) "
echo "Please read the README, INSTALL and FAQ files before e-mailing "
echo "questions. We will IGNORE any questions that are already"
echo "answered in the documentation."
echo
perai
echo
+11
View File
@@ -2,6 +2,17 @@
NEWS for veteran Window Maker users
-----------------------------------
--- 0.51.2
Full Screen Maximization
------------------------
The FullMaximize window attribute will allow the window to
be maximized to the full size of the screen (ignoring anything
like titlebar, resizebar, dock, panels etc). It should be usefull
for programs that must use the whole screen, like games or things
like presentation programs.
--- 0.51.1
+7 -3
View File
@@ -66,6 +66,8 @@ making windows and doors.
Documentation
=============
Read before asking.
* README files all over the source tree have info related to the stuff
in the directories.
@@ -302,17 +304,19 @@ to:
#define NO_EMERGENCY_AUTORESTART
Then, in the src directory type:
make clean
make CFLAGS=-g
make install
and wait for Window Maker to be installed.
Once having Window Maker installed, start X and reproduce the bug so
that Window Maker crashes. When it does crash, type the following from
your shell:
that Window Maker crashes. When it does crash, go to the directory
where you compiled wmaker and type the following from your shell:
script
gdb wmaker path_to_the_core_file
cd src
gdb .libs/wmaker path_to_the_core_file
Then, in the gdb prompt type "bt". Quit from gdb by typing "quit"
and then, in the shell prompt, type "exit".
+2
View File
@@ -9,9 +9,11 @@ Do ASAP:
- add multiline support for balloons
- move/add balloon to WINGs
- finish XStandardColormap stuff in wrlib
- finish menu editor/other stuff in wprefs
Need to do:
===========
- put a "Do not save workspace state" in the exit confirmation dialog
- allow user to select/restore default root menu from wprefs
- fix windoze cycle window patch
- support for X11R6.4 extension for getting extra visual info in wrlib's
+11
View File
@@ -1,8 +1,19 @@
changes since wmaker 0.51.1:
...........................
- wusergnusteppath() will return a statically allocated string now.
DO NOT FREE IT ANYMORE!!
changes since wmaker 0.51.0:
............................
- applied c++ compat header patch from Martynas Kunigelis <mkunigelis@alna.lt>
- added WMSetTextFieldBeveled()
- removed W_GC() : use WMColorGC() instead
- added WMCreatePixmap()
- changed WMSetTextFieldEnabled() to WMSetTextFieldEditable()
changes since wmaker 0.50.1:
............................
Binary file not shown.
Binary file not shown.
+157 -157
View File
@@ -25,65 +25,65 @@ static char * Images_xpm[] = {
"/ c #424960",
"( c #272A35",
"_ c #0E1015",
": c #8295A0",
"< c #9E7576",
"[ c #323230",
"} c #56504B",
"| c #2C2119",
"1 c #8D9294",
"2 c #D3DAE0",
"3 c #C1C9D0",
"4 c #BFC2C4",
"5 c #070C1B",
"6 c #29354E",
"7 c #4E5A77",
"8 c #66718F",
"9 c #788094",
"0 c #828899",
"a c #848A9E",
"b c #7B8297",
"c c #676D84",
"d c #51576E",
"e c #3B4151",
"f c #1C1C20",
"g c #FFFFFF",
"h c #F8F8F8",
"i c #F1F1F1",
"j c #EAEAEA",
"k c #E4E4E4",
"l c #DDDDDD",
"m c #D6D6D6",
"n c #D0D0D0",
"o c #C9C9C9",
"p c #C2C2C2",
"q c #BBBBBB",
"r c #B5B5B5",
"s c #AEAEAE",
"t c #A7A7A7",
"u c #A1A1A1",
"v c #9A9A9A",
"w c #939393",
"x c #8C8C8C",
"y c #868686",
"z c #7F7F7F",
"A c #787878",
"B c #727272",
"C c #6B6B6B",
"D c #646464",
"E c #5D5D5D",
"F c #575757",
"G c #505050",
"H c #494949",
"I c #434343",
"J c #3C3C3C",
"K c #353535",
"L c #2E2E2E",
"M c #282828",
"N c #212121",
"O c #1A1A1A",
"P c #141414",
"Q c #0D0D0D",
"R c #060606",
": c #FFFFFF",
"< c #F8F8F8",
"[ c #F1F1F1",
"} c #EAEAEA",
"| c #E4E4E4",
"1 c #DDDDDD",
"2 c #D6D6D6",
"3 c #D0D0D0",
"4 c #C9C9C9",
"5 c #C2C2C2",
"6 c #BBBBBB",
"7 c #B5B5B5",
"8 c #AEAEAE",
"9 c #A7A7A7",
"0 c #A1A1A1",
"a c #9A9A9A",
"b c #939393",
"c c #8C8C8C",
"d c #868686",
"e c #7F7F7F",
"f c #787878",
"g c #727272",
"h c #6B6B6B",
"i c #646464",
"j c #5D5D5D",
"k c #575757",
"l c #505050",
"m c #494949",
"n c #434343",
"o c #3C3C3C",
"p c #353535",
"q c #2E2E2E",
"r c #282828",
"s c #212121",
"t c #1A1A1A",
"u c #141414",
"v c #0D0D0D",
"w c #060606",
"x c #8295A0",
"y c #9E7576",
"z c #323230",
"A c #56504B",
"B c #2C2119",
"C c #8D9294",
"D c #D3DAE0",
"E c #C1C9D0",
"F c #BFC2C4",
"G c #070C1B",
"H c #29354E",
"I c #4E5A77",
"J c #66718F",
"K c #788094",
"L c #828899",
"M c #848A9E",
"N c #7B8297",
"O c #676D84",
"P c #51576E",
"Q c #3B4151",
"R c #1C1C20",
"S c #484848",
"T c #20201E",
"U c #634A48",
@@ -336,49 +336,49 @@ static char * Images_xpm[] = {
"r@ c #576789",
"s@ c #546484",
"t@ c #556788",
"u@ c #76787A",
"v@ c #413E38",
"w@ c #C6CBCD",
"x@ c #1F1B17",
"y@ c #A2A2A0",
"z@ c #E7ECF0",
"A@ c #F1F5F8",
"B@ c #BDC0C2",
"C@ c #373739",
"D@ c #47516B",
"E@ c #48546E",
"F@ c #485470",
"G@ c #495774",
"H@ c #4A5879",
"I@ c #4A5C7D",
"J@ c #0F131B",
"K@ c #7F8592",
"L@ c #CDD5E4",
"M@ c #D9E0F1",
"N@ c #CBD5EB",
"O@ c #A4AECE",
"P@ c #808BB3",
"Q@ c #707891",
"R@ c #6B7287",
"S@ c #6F778C",
"T@ c #C9D3E0",
"U@ c #C0CBDD",
"V@ c #A9BAD7",
"W@ c #A8B9D7",
"X@ c #90A4C7",
"Y@ c #141920",
"Z@ c #1B2531",
"`@ c #475F7E",
" # c #546C90",
".# c #6982A0",
"+# c #C0CFDC",
"@# c #8B9FB7",
"## c #56688A",
"$# c #515D7B",
"%# c #515B79",
"&# c #515B76",
"*# c #525D79",
"=# c #333333",
"u@ c #333333",
"v@ c #76787A",
"w@ c #413E38",
"x@ c #C6CBCD",
"y@ c #1F1B17",
"z@ c #A2A2A0",
"A@ c #E7ECF0",
"B@ c #F1F5F8",
"C@ c #BDC0C2",
"D@ c #373739",
"E@ c #47516B",
"F@ c #48546E",
"G@ c #485470",
"H@ c #495774",
"I@ c #4A5879",
"J@ c #4A5C7D",
"K@ c #0F131B",
"L@ c #7F8592",
"M@ c #CDD5E4",
"N@ c #D9E0F1",
"O@ c #CBD5EB",
"P@ c #A4AECE",
"Q@ c #808BB3",
"R@ c #707891",
"S@ c #6B7287",
"T@ c #6F778C",
"U@ c #C9D3E0",
"V@ c #C0CBDD",
"W@ c #A9BAD7",
"X@ c #A8B9D7",
"Y@ c #90A4C7",
"Z@ c #141920",
"`@ c #1B2531",
" # c #475F7E",
".# c #546C90",
"+# c #6982A0",
"@# c #C0CFDC",
"## c #8B9FB7",
"$# c #56688A",
"%# c #515D7B",
"&# c #515B79",
"*# c #515B76",
"=# c #525D79",
"-# c #9A9B9B",
";# c #BEC2C5",
"># c #959A9E",
@@ -2088,24 +2088,24 @@ static char * Images_xpm[] = {
" ",
" ",
" . + @ # $ % $ & ",
" * = - ; > , ' ) ! ~ { ] ^ / ( _ ",
" : < [ } | 1 2 3 3 > 4 5 6 7 8 9 0 a b c d e f @ g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R ",
" S T U V W X Y 2 3 Z > Z Z ` ...+.@.#.$.%.&.*.^ =.-.;.>. g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R ",
" ,.'.).!.~.{.].^./.2 > > > > > 2 (. _.:.<._.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r. g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R ",
" s.+ t.u.v.w.x.y.z.A.B.C.D.E.F.G.2 ; H. I.J.K.L.<.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+m.m.%+&+*+=+-+;+r. g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R ",
" >+,+'+C.)+4 4 !+; /.~+{+]+^+/+(+_+:+<+[+ }+|+|+1+2+3+4+5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+ g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R ",
" w+x+; y+3 z+A+B+> 3 C+D+E+/.F+G+^.3 H+I+ J+K+L+M+N+L.O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@ ",
" !@~@C+{@^+]@^@B+2 2 ^./@(@/._@:@^.Z <@L [@}@|@1@2@N+3@4@5@6@7@8@9@0@a@b@c@d@e@f@g@h@i@j@k@l@=+m@n@o@p@q@r@s@t@ g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g ",
" u@v@w@x@^.A+y@B+z@z@+ z ~+A@/@z.z@/.B@C@ 1@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@W.Y@Z@`@ #.#+#@###$#%#&#*# g z z z z =# g z z z z =# g z z z z =# g z z z z =# g z z z z =# ",
" u@-#^.;#; > z@>#,#'#D+)#y+!#,#~#{#'#]#^# 1@/#(#_#_#H@:#<#[#}#|#1#2#3#4#5#6#7#8#9#9#0#a#b#c#d#e#f#g#h#i#=.j#k#l# g z z z z =# g z z z z =# g z z z z =# g z z z z =# g z z z z =# ",
" !@/././.2 2 /.m#w@n#-#z+z o#p#q#r#s#n#t#u# v#w#x#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#O#P#Q#R#S#T#U#V#W#X#Y#Z#`# $l# g z z z z =# g z z z z =# g z z z z =# g z z z z =# g z z z z =# ",
".$+$@$n##$2 $$;#%$&$x@z D+*$F+&$=$-$;$>$z ,$'$ )$!$~${$]$^$/$($_$:$<$[$}$|$1$2$3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$k$ g =#=#=#=#=# g =#=#=#=#=# g =#=#=#=#=# g =#=#=#=#=# g =#=#=#=#=# ",
" z@l$(@m$/.D.C+n$o$'#$$'#p$q$r$/@s$t$u$t$/@'$ v$w$x$y$z$A$B$C$D$E$F$G$H$I$J$K$L$M$N$7$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$ %.% ",
" A@q$+%@%/.;$C+#%$%%%$$'#t$&%*%=%-%;%>%s$u#I+ ,%'%)%!%~%{%]%^%/%(%_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%0%a%X$b%c%d%e%f%g%h% g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g ",
" z@E.4 i%2 j%k%#%l%m%n%o%p%q%r%s%t%u%v%w%u%x% y%z%A%)%!%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@& g z z z z =# g z z z z =# g z z z z =# g z z z z =# g z z z z =# ",
" z $$n##&, $&%&&&)+(@*&z z /+u$=&B+>%-&s%;&I+ >&,&z%'&)&!&~&{&]&^&/&(&_&:&<&[&}&|&1&2&3&4&5&6&7&8&9&`$0&a&b&c&d&e&f& g z z z z =# g z z z z =# g z z z z =# g z z z z =# g z z z z =# ",
" g&h&i&{@j&k&r$r$*%r$t$l&,#m&p$t.@%F+n&#$o&'$ p&q&r&s&'&t&u&v&w&x&y&z&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W& g z z z z =# g z z z z =# g z z z z =# g z z z z =# g z z z z =# ",
" I+'$X&Y&Z&`& *.*t$+*t$.*q$q$q$/@q$q$@*'$ #*$*%*&***P&=*O&-*;*>*,*'*)*!*~*{*]*^*/*(*_*:*<*[*}*|*1*2*3*4*5*6*7*8* g =#=#=#=#=# g =#=#=#=#=# g =#=#=#=#=# g =#=#=#=#=# g =#=#=#=#=# ",
" * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w ",
" x y z A B C D E E > F G H I J K L M N O P Q R @ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w ",
" S T U V W X Y D E Z > Z Z ` ...+.@.#.$.%.&.*.^ =.-.;.>. : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w ",
" ,.'.).!.~.{.].^./.D > > > > > D (. _.:.<._.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r. : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w ",
" s.+ t.u.v.w.x.y.z.A.B.C.D.E.F.G.D ; H. I.J.K.L.<.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+m.m.%+&+*+=+-+;+r. : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w ",
" >+,+'+C.)+F F !+; /.~+{+]+^+/+(+_+:+<+[+ }+|+|+1+2+3+4+5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+ ",
" w+x+; y+E z+A+B+> E C+D+E+/.F+G+^.E H+I+ J+K+L+M+N+L.O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ",
" !@~@C+{@^+]@^@B+D D ^./@(@/._@:@^.Z <@q [@}@|@1@2@N+3@4@5@6@7@8@9@0@a@b@c@d@e@f@g@h@i@j@k@l@=+m@n@o@p@q@r@s@t@ : e e e e u@ : e e e e u@ : e e e e u@ : e e e e u@ : e e e e u@ ",
" v@w@x@y@^.A+z@B+A@A@+ e ~+B@/@z.A@/.C@D@ 1@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@W.Z@`@ #.#+#@###$#%#&#*#=# : e e e e u@ : e e e e u@ : e e e e u@ : e e e e u@ : e e e e u@ ",
" v@-#^.;#; > A@>#,#'#D+)#y+!#,#~#{#'#]#^# 1@/#(#_#_#I@:#<#[#}#|#1#2#3#4#5#6#7#8#9#9#0#a#b#c#d#e#f#g#h#i#=.j#k#l# : e e e e u@ : e e e e u@ : e e e e u@ : e e e e u@ : e e e e u@ ",
" !@/././.D D /.m#x@n#-#z+e o#p#q#r#s#n#t#u# v#w#x#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#O#P#Q#R#S#T#U#V#W#X#Y#Z#`# $l# : u@u@u@u@u@ : u@u@u@u@u@ : u@u@u@u@u@ : u@u@u@u@u@ : u@u@u@u@u@ ",
".$+$@$n##$D $$;#%$&$y@e D+*$F+&$=$-$;$>$e ,$'$ )$!$~${$]$^$/$($_$:$<$[$}$|$1$2$3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$k$ ",
" A@l$(@m$/.D.C+n$o$'#$$'#p$q$r$/@s$t$u$t$/@'$ v$w$x$y$z$A$B$C$D$E$F$G$H$I$J$K$L$M$N$7$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$ %.% : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ",
" B@q$+%@%/.;$C+#%$%%%$$'#t$&%*%=%-%;%>%s$u#I+ ,%'%)%!%~%{%]%^%/%(%_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%0%a%X$b%c%d%e%f%g%h% : e e e e u@ : e e e e u@ : e e e e u@ : e e e e u@ : e e e e u@ ",
" A@E.F i%D j%k%#%l%m%n%o%p%q%r%s%t%u%v%w%u%x% y%z%A%)%!%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@& : e e e e u@ : e e e e u@ : e e e e u@ : e e e e u@ : e e e e u@ ",
" e $$n##&, $&%&&&)+(@*&e e /+u$=&B+>%-&s%;&I+ >&,&z%'&)&!&~&{&]&^&/&(&_&:&<&[&}&|&1&2&3&4&5&6&7&8&9&`$0&a&b&c&d&e&f& : e e e e u@ : e e e e u@ : e e e e u@ : e e e e u@ : e e e e u@ ",
" g&h&i&{@j&k&r$r$*%r$t$l&,#m&p$t.@%F+n&#$o&'$ p&q&r&s&'&t&u&v&w&x&y&z&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W& : u@u@u@u@u@ : u@u@u@u@u@ : u@u@u@u@u@ : u@u@u@u@u@ : u@u@u@u@u@ ",
" I+'$X&Y&Z&`& *.*t$+*t$.*q$q$q$/@q$q$@*'$ #*$*%*&***P&=*O&-*;*>*,*'*)*!*~*{*]*^*/*(*_*:*<*[*}*|*1*2*3*4*5*6*7*8* ",
" x%I+'$x%x%x%x%'$'$'$'$'$x%X& 9*0*a*b*c*d*b*e*a*f*g*h*i*j*P.k*l*k*m*n*o*p*q*r*s*t*u*v*w*5*x*y*z*A*B* ",
" C*D*E*F*G*H*I*J*K*L*M*a*a*N*O*K*O*K*K*P*Q*L*R*S*T*U*V*W*X*Y*Z*`* =.=+= ",
" @=#=$=%=&=*=b*M*c*==c*M*-=;=>=,=d*'=)=)=)=)=!=~={=]=^=/=(=_=:=<=[=.=.= ",
@@ -2113,31 +2113,31 @@ static char * Images_xpm[] = {
" l=m=n=o= p=q=r=s=1=2=t=u=v=F*w=b=8=x=y=z=$=z=A=B=A=A=C=D=E=F=G=H=I=J=K=j=[= =+= ",
" L=M=N=O=P=Q=R=S=T=U= V=W=X=Y= ",
" Z=`= -.-+-@-#-$-%-&-*-=- --;->-,- ",
" '-)-!-~-{-]-^-/-(-_-:-<-[-}-|- 1-2-3- g 4-5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-y-y-z-A-B- ",
" C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S- T-U-V- g 4-5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z =#z-A-B- ",
" W-X-Y-Z-`- ;.;+;@;#;$;%;&;*;=;-;;;>; ,;,; g 4-5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z =#z-A-B- ",
" ';);!;~;{;];^;/;(;_;:;<;[;};|;1;2;3;4;5; g 4-5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z =#z-A-B- ",
" 6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o; g 4-5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-=#=#z-A-B- ",
" '-)-!-~-{-]-^-/-(-_-:-<-[-}-|- 1-2-3- : 4-5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-y-y-z-A-B- ",
" C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S- T-U-V- : 4-5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-e u@z-A-B- ",
" W-X-Y-Z-`- ;.;+;@;#;$;%;&;*;=;-;;;>; ,;,; : 4-5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-e u@z-A-B- ",
" ';);!;~;{;];^;/;(;_;:;<;[;};|;1;2;3;4;5; : 4-5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-e u@z-A-B- ",
" 6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o; : 4-5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-u@u@z-A-B- ",
" p;q;r;s;t;u;v;w;x;y;z;A;B;C;D;E;F;G;H;I;J; ",
" K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;`; >.>+>@>#> g $>%>&>*>y-y-y-=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>0> ",
" a>b>c>d>e>f>g>h>i>j>k>l>m>n>o>p>q>r>s>t>u>v> g $>%>&>*>y-z =#=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>0> ",
" w>x>y>z>A>B>C>D>E>F>G>H>I>J>K>L>M>N>O>P>Q>R> S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,>,,,',),y-y-y-!,~,{,],^,/,(,_,:,<, g $>%>&>*>y-z =#=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>0> ",
" [,},|,1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h,i, S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,>,,,',),y-z =#!,~,{,],^,/,(,_,:,<, g $>%>&>*>y-z =#=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>0> ",
" j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D, S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,>,,,',),y-z =#!,~,{,],^,/,(,_,:,<, g $>%>&>*>y-=#=#=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>0> ",
" E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X, S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,>,,,',),y-z =#!,~,{,],^,/,(,_,:,<, ",
" Y,Z,`, '.'+'@'#'$'%'&'*'='-';'>',''')'!' S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,>,,,',),y-=#=#!,~,{,],^,/,(,_,:,<, g ~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'y-y-y-6'7'8'9'0'a'b'c'd'e'f'g'h'i'j'k'l' ",
" m'n'o'p'q'r's't'u'v'w'x'y'z'A'B'C'D'E' g ~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'y-z =#6'7'8'9'0'a'b'c'd'e'f'g'h'i'j'k'l' ",
" F'G'H'I'J'K'L'M'N'O'P'Q'R'S'T'U'V' W'X'Y'Z'`' ).)+)y-y-y-@)#)$)%)&)*)=)-);)>),)')))!)~){)])^)/)()_):)<)[)})|)1) g ~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'y-z =#6'7'8'9'0'a'b'c'd'e'f'g'h'i'j'k'l' ",
" 2)3)4)5)6)7)8)9)0)a)b)c)d)e)f)g) W'X'Y'Z'`' ).)+)y-z =#@)#)$)%)&)*)=)-);)>),)')))!)~){)])^)/)()_):)<)[)})|)1) g ~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'y-z =#6'7'8'9'0'a'b'c'd'e'f'g'h'i'j'k'l' ",
" h)i)j)k)l)m)n)o)p)q)r)s)t)u) W'X'Y'Z'`' ).)+)y-z =#@)#)$)%)&)*)=)-);)>),)')))!)~){)])^)/)()_):)<)[)})|)1) g ~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'y-=#=#6'7'8'9'0'a'b'c'd'e'f'g'h'i'j'k'l' ",
" v)w)x)y)z)A)B)C)D)E)F) W'X'Y'Z'`' ).)+)y-z =#@)#)$)%)&)*)=)-);)>),)')))!)~){)])^)/)()_):)<)[)})|)1) ",
" G)H)I)J)K)L) W'X'Y'Z'`' ).)+)y-=#=#@)#)$)%)&)*)=)-);)>),)')))!)~){)])^)/)()_):)<)[)})|)1) ",
" K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;`; >.>+>@>#> : $>%>&>*>y-y-y-=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>0> ",
" a>b>c>d>e>f>g>h>i>j>k>l>m>n>o>p>q>r>s>t>u>v> : $>%>&>*>y-e u@=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>0> ",
" w>x>y>z>A>B>C>D>E>F>G>H>I>J>K>L>M>N>O>P>Q>R> S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,>,,,',),y-y-y-!,~,{,],^,/,(,_,:,<, : $>%>&>*>y-e u@=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>0> ",
" [,},|,1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h,i, S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,>,,,',),y-e u@!,~,{,],^,/,(,_,:,<, : $>%>&>*>y-e u@=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>0> ",
" j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D, S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,>,,,',),y-e u@!,~,{,],^,/,(,_,:,<, : $>%>&>*>y-u@u@=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>0> ",
" E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X, S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,>,,,',),y-e u@!,~,{,],^,/,(,_,:,<, ",
" Y,Z,`, '.'+'@'#'$'%'&'*'='-';'>',''')'!' S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,>,,,',),y-u@u@!,~,{,],^,/,(,_,:,<, : ~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'y-y-y-6'7'8'9'0'a'b'c'd'e'f'g'h'i'j'k'l' ",
" m'n'o'p'q'r's't'u'v'w'x'y'z'A'B'C'D'E' : ~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'y-e u@6'7'8'9'0'a'b'c'd'e'f'g'h'i'j'k'l' ",
" F'G'H'I'J'K'L'M'N'O'P'Q'R'S'T'U'V' W'X'Y'Z'`' ).)+)y-y-y-@)#)$)%)&)*)=)-);)>),)')))!)~){)])^)/)()_):)<)[)})|)1) : ~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'y-e u@6'7'8'9'0'a'b'c'd'e'f'g'h'i'j'k'l' ",
" 2)3)4)5)6)7)8)9)0)a)b)c)d)e)f)g) W'X'Y'Z'`' ).)+)y-e u@@)#)$)%)&)*)=)-);)>),)')))!)~){)])^)/)()_):)<)[)})|)1) : ~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'y-e u@6'7'8'9'0'a'b'c'd'e'f'g'h'i'j'k'l' ",
" h)i)j)k)l)m)n)o)p)q)r)s)t)u) W'X'Y'Z'`' ).)+)y-e u@@)#)$)%)&)*)=)-);)>),)')))!)~){)])^)/)()_):)<)[)})|)1) : ~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'y-u@u@6'7'8'9'0'a'b'c'd'e'f'g'h'i'j'k'l' ",
" v)w)x)y)z)A)B)C)D)E)F) W'X'Y'Z'`' ).)+)y-e u@@)#)$)%)&)*)=)-);)>),)')))!)~){)])^)/)()_):)<)[)})|)1) ",
" G)H)I)J)K)L) W'X'Y'Z'`' ).)+)y-u@u@@)#)$)%)&)*)=)-);)>),)')))!)~){)])^)/)()_):)<)[)})|)1) ",
" ",
" M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!y-y-y-@!#!$!%!&!*!=!-!;!>!,!'!)!!!~!{!]! ",
" M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!y-z =#@!#!$!%!&!*!=!-!;!>!,!'!)!!!~!{!]! ",
" M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!y-z =#@!#!$!%!&!*!=!-!;!>!,!'!)!!!~!{!]! ",
" M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!y-z =#@!#!$!%!&!*!=!-!;!>!,!'!)!!!~!{!]! ",
" M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!y-=#=#@!#!$!%!&!*!=!-!;!>!,!'!)!!!~!{!]! ",
" M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!y-e u@@!#!$!%!&!*!=!-!;!>!,!'!)!!!~!{!]! ",
" M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!y-e u@@!#!$!%!&!*!=!-!;!>!,!'!)!!!~!{!]! ",
" M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!y-e u@@!#!$!%!&!*!=!-!;!>!,!'!)!!!~!{!]! ",
" M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!y-u@u@@!#!$!%!&!*!=!-!;!>!,!'!)!!!~!{!]! ",
" ",
" ",
" ",
@@ -2145,23 +2145,23 @@ static char * Images_xpm[] = {
" ",
" ^!^!^!^!^! ,; ,;,; ,;,; ,;,;,; ",
" ^!^!^!^!^! ,;,; ,;,; ,;,; ,; /!(!(!_!_!_!_!_!_!_!:!:!<!:!:!:!<!:!:!:![![![![!}!}!}!}!|!}!}!1! ",
" ^!2!3!4!5!6!7!8!9!0!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!y-y-y- z!A!B!B!B!C!B!C!D!D!E!F!D!D!D!D!D!D!G!G!H!G!H!I!I!J!J!J!K!K!K!L! ",
" ^!2!3!4!5!6!7!8!9!0!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!y-z =# M!M!M!M!M! ,; ,;,; ,; ,; ,; ,;,; ,;,; ,; ,;,; N!O!P!Q!R!S!T!U!V!T!W!X!W!Y!Y!Z!`! ~.~+~@~#~$~%~&~*~=~-~;~;~;~>~ ",
" ^!2!3!4!5!6!7!8!9!0!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!y-z =# M!M!M!M!M! ,;,; ,; ,;,; ,; ,;,;,;,; ,; ,~'~)~!~~~{~]~]~]~]~]~^~/~(~_~:~<~[~}~|~1~2~3~4~<~5~6~6~6~6~7~8~ ",
" ^!2!3!4!5!6!7!8!9!0!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!y-z =# 9~0~a~a~b~c~d~d~d~d~e~f~f~g~a~h~i~j~k~l~m~n~o~p~q~r~e~s~s~s~t~u~ ",
" ^!2!3!4!5!6!7!8!9!0!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!y-=#=# v~v~v~v~v~ ,; ,;,; ,;,; ,;,;,; w~x~y~z~z~z~z~z~z~A~B~C~C~D~E~F~G~H~I~J~K~L~M~N~O~P~Q~R~R~R~S~T~ ",
"^!2!3!4!5!6!7!8!9!0!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!y-y-y- z!A!B!B!B!C!B!C!D!D!E!F!D!D!D!D!D!D!G!G!H!G!H!I!I!J!J!J!K!K!K!L! ",
"^!2!3!4!5!6!7!8!9!0!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!y-e u@ M!M!M!M!M! ,; ,;,; ,; ,; ,; ,;,; ,;,; ,; ,;,; N!O!P!Q!R!S!T!U!V!T!W!X!W!Y!Y!Z!`! ~.~+~@~#~$~%~&~*~=~-~;~;~;~>~ ",
"^!2!3!4!5!6!7!8!9!0!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!y-e u@ M!M!M!M!M! ,;,; ,; ,;,; ,; ,;,;,;,; ,; ,~'~)~!~~~{~]~]~]~]~]~^~/~(~_~:~<~[~}~|~1~2~3~4~<~5~6~6~6~6~7~8~ ",
"^!2!3!4!5!6!7!8!9!0!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!y-e u@ 9~0~a~a~b~c~d~d~d~d~e~f~f~g~a~h~i~j~k~l~m~n~o~p~q~r~e~s~s~s~t~u~ ",
"^!2!3!4!5!6!7!8!9!0!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!y-u@u@ v~v~v~v~v~ ,; ,;,; ,;,; ,;,;,; w~x~y~z~z~z~z~z~z~A~B~C~C~D~E~F~G~H~I~J~K~L~M~N~O~P~Q~R~R~R~S~T~ ",
" v~v~v~v~v~ ,;,; ,;,; ,;,; ,; U~V~W~W~W~X~Y~Z~Z~`~ {.{.{+{@{#{${%{&{*{={-{;{>{,{'{){!{.{.{.{~{ ",
" g {{]{^{/{({_{:{<{[{}{|{1{2{3{4{5{6{y-y-y-7{8{9{0{a{b{c{d{e{f{g{h{i{j{k{l{m{ n{o{p{q{r{r{s{r{r{s{t{t{u{v{w{x{y{z{A{B{C{D{E{F{G{H{I{J{K{L{J{M{ ",
" g {{]{^{/{({_{:{<{[{}{|{1{2{3{4{5{6{y-z =#7{8{9{0{a{b{c{d{e{f{g{h{i{j{k{l{m{ j!j!j!j!j! ,; ,; ,; ,; ,;,; ,;,;,;,;,;,;,;,;,; N{O{P{P{Q{Q{R{R{R{R{S{T{U{U{V{W{X{Y{Z{`{ ].]+]@]#]$]%]&]&]&]*]=] ",
" g {{]{^{/{({_{:{<{[{}{|{1{2{3{4{5{6{y-z =#7{8{9{0{a{b{c{d{e{f{g{h{i{j{k{l{m{ j!j!j!j!j! ,; ,; ,; ,;,;,; ,; ,;,;,; -];]>],]'])]!]!]~]!]{]]]^]^]/]!](]_]:]<][]}]|]1]2](]{]3]4]3]4]5] ",
" g {{]{^{/{({_{:{<{[{}{|{1{2{3{4{5{6{y-z =#7{8{9{0{a{b{c{d{e{f{g{h{i{j{k{l{m{ 6]7]8]8]9]0]a]b]c]d]e]f]g]h]h]i]j]k]l]m]n]o]p]q]r]s]t]t]t]t]u]v] ",
" g {{]{^{/{({_{:{<{[{}{|{1{2{3{4{5{6{y-=#=#7{8{9{0{a{b{c{d{e{f{g{h{i{j{k{l{m{ w]w]w]w]w] ,; ,;,; ,;,; ,;,;,; x]y]z]A]B]C]D]E]F]G]H]I]J]J]J]K]L]M]N]O]P]Q]R]S]T]U]V]V]V]V]U]W] ",
": {{]{^{/{({_{:{<{[{}{|{1{2{3{4{5{6{y-y-y-7{8{9{0{a{b{c{d{e{f{g{h{i{j{k{l{m{ n{o{p{q{r{r{s{r{r{s{t{t{u{v{w{x{y{z{A{B{C{D{E{F{G{H{I{J{K{L{J{M{ ",
": {{]{^{/{({_{:{<{[{}{|{1{2{3{4{5{6{y-e u@7{8{9{0{a{b{c{d{e{f{g{h{i{j{k{l{m{ j!j!j!j!j! ,; ,; ,; ,; ,;,; ,;,;,;,;,;,;,;,;,; N{O{P{P{Q{Q{R{R{R{R{S{T{U{U{V{W{X{Y{Z{`{ ].]+]@]#]$]%]&]&]&]*]=] ",
": {{]{^{/{({_{:{<{[{}{|{1{2{3{4{5{6{y-e u@7{8{9{0{a{b{c{d{e{f{g{h{i{j{k{l{m{ j!j!j!j!j! ,; ,; ,; ,;,;,; ,; ,;,;,; -];]>],]'])]!]!]~]!]{]]]^]^]/]!](]_]:]<][]}]|]1]2](]{]3]4]3]4]5] ",
": {{]{^{/{({_{:{<{[{}{|{1{2{3{4{5{6{y-e u@7{8{9{0{a{b{c{d{e{f{g{h{i{j{k{l{m{ 6]7]8]8]9]0]a]b]c]d]e]f]g]h]h]i]j]k]l]m]n]o]p]q]r]s]t]t]t]t]u]v] ",
": {{]{^{/{({_{:{<{[{}{|{1{2{3{4{5{6{y-u@u@7{8{9{0{a{b{c{d{e{f{g{h{i{j{k{l{m{ w]w]w]w]w] ,; ,;,; ,;,; ,;,;,; x]y]z]A]B]C]D]E]F]G]H]I]J]J]J]K]L]M]N]O]P]Q]R]S]T]U]V]V]V]V]U]W] ",
" w]w]w]w]w] ,;,; ,;,; ,;,; ,; X]Y]Z]`] ^.^+^@^#^$^%^&^*^*^*^*^*^Y]=^-^;^>^,^'^)^!^!^!^~^{^]^^^ ",
" ,;S>/^(^_^:^<^[^}^|^1^2^3^4^5^6^7^*,8^-,9^>,0^a^y-y-y-b^c^d^e^f^g^h^i^j^k^l^ m^n^o^p^q^r^s^t^u^v^w^x^y^z^A^B^C^D^E^F^G^H^I^J^K^L^M^L^N^O^C^P^ ",
" ,;S>/^(^_^:^<^[^}^|^1^2^3^4^5^6^7^*,8^-,9^>,0^a^y-z =#b^c^d^e^f^g^h^i^j^k^l^ Q^Q^Q^Q^Q^ ,; ,;,; ,; ,; ,; ,;,; ,;,; ,; ,;R^ S^T^U^V^W^X^Y^Z^`^ /./+/@/#/$/%/&/*/=/-/;/>/,/'/)/!/~/{/]/^///(/ ",
" ,;S>/^(^_^:^<^[^}^|^1^2^3^4^5^6^7^*,8^-,9^>,0^a^y-z =#b^c^d^e^f^g^h^i^j^k^l^ Q^Q^Q^Q^Q^ ,;,; ,; ,;,; ,; ,;,;,;,; ,; _/:/</[/}/|/1/2/3/4/5/6/7/8/9/0/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/ ",
" ,;S>/^(^_^:^<^[^}^|^1^2^3^4^5^6^7^*,8^-,9^>,0^a^y-z =#b^c^d^e^f^g^h^i^j^k^l^ q/r/s/t/u/v/w/x/y/z/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/ ",
" ,;S>/^(^_^:^<^[^}^|^1^2^3^4^5^6^7^*,8^-,9^>,0^a^y-=#=#b^c^d^e^f^g^h^i^j^k^l^ W/W/W/W/W/ ,; ,; ,; ,; ,;,; ,;,;,;,;,;,;,;,;,; X/Y/Z/`/ (.(+(@(#($(%(&(*(=(-(;(>(,('()(!(~({(](^(/(((_(:(<([(}( ",
",;S>/^(^_^:^<^[^}^|^1^2^3^4^5^6^7^*,8^-,9^>,0^a^y-y-y-b^c^d^e^f^g^h^i^j^k^l^ m^n^o^p^q^r^s^t^u^v^w^x^y^z^A^B^C^D^E^F^G^H^I^J^K^L^M^L^N^O^C^P^ ",
",;S>/^(^_^:^<^[^}^|^1^2^3^4^5^6^7^*,8^-,9^>,0^a^y-e u@b^c^d^e^f^g^h^i^j^k^l^ Q^Q^Q^Q^Q^ ,; ,;,; ,; ,; ,; ,;,; ,;,; ,; ,;R^ S^T^U^V^W^X^Y^Z^`^ /./+/@/#/$/%/&/*/=/-/;/>/,/'/)/!/~/{/]/^///(/ ",
",;S>/^(^_^:^<^[^}^|^1^2^3^4^5^6^7^*,8^-,9^>,0^a^y-e u@b^c^d^e^f^g^h^i^j^k^l^ Q^Q^Q^Q^Q^ ,;,; ,; ,;,; ,; ,;,;,;,; ,; _/:/</[/}/|/1/2/3/4/5/6/7/8/9/0/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/ ",
",;S>/^(^_^:^<^[^}^|^1^2^3^4^5^6^7^*,8^-,9^>,0^a^y-e u@b^c^d^e^f^g^h^i^j^k^l^ q/r/s/t/u/v/w/x/y/z/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/ ",
",;S>/^(^_^:^<^[^}^|^1^2^3^4^5^6^7^*,8^-,9^>,0^a^y-u@u@b^c^d^e^f^g^h^i^j^k^l^ W/W/W/W/W/ ,; ,; ,; ,; ,;,; ,;,;,;,;,;,;,;,;,; X/Y/Z/`/ (.(+(@(#($(%(&(*(=(-(;(>(,('()(!(~({(](^(/(((_(:(<([(}( ",
" W/W/W/W/W/ ,; ,; ,; ,;,;,; ,; ,;,;,; |(1(2(3(4(5(6(7(8(9(0(a(b(c(d(e(f(g(h(i(j(k(l(m(n(o(p(q(r(s(t(u( ",
" ",
" ",
+14 -5
View File
@@ -6,7 +6,7 @@
#include <wraster.h>
#include <X11/Xlib.h>
#define WINGS_H_VERSION 981220
#define WINGS_H_VERSION 990222
#ifdef __cplusplus
@@ -512,6 +512,9 @@ WMPixmap *WMRetainPixmap(WMPixmap *pixmap);
void WMReleasePixmap(WMPixmap *pixmap);
WMPixmap *WMCreatePixmap(WMScreen *scrPtr, int width, int height, int depth,
Bool masked);
WMPixmap *WMCreatePixmapFromXPixmaps(WMScreen *scrPtr, Pixmap pixmap,
Pixmap mask, int width, int height,
int depth);
@@ -774,9 +777,9 @@ void WMSetTextFieldBordered(WMTextField *tPtr, Bool bordered);
void WMSetTextFieldBeveled(WMTextField *tPtr, Bool flag);
Bool WMGetTextFieldEnabled(WMTextField *tPtr);
Bool WMGetTextFieldEditable(WMTextField *tPtr);
void WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag);
void WMSetTextFieldEditable(WMTextField *tPtr, Bool flag);
void WMSetTextFieldSecure(WMTextField *tPtr, Bool flag);
@@ -944,13 +947,19 @@ WMColorPanel *WMGetColorPanel(WMScreen *scrPtr);
void WMFreeColorPanel(WMColorPanel *panel);
int WMRunColorPanel(WMColorPanel *panel, WMWindow *owner, RColor color);
void WMShowColorPanel(WMColorPanel *panel);
void WMCloseColorPanel(WMColorPanel *panel);
void WMSetColorPanelColor(WMColorPanel *panel, RColor color);
RColor WMGetColorPanelColor(WMColorPanel *panel);
void WMSetPickerMode(WMColorPanel *panel, WMColorPanelMode mode);
void WMSetColorPanelPickerMode(WMColorPanel *panel, WMColorPanelMode mode);
void WMSetColorPanelAction(WMColorPanel *panel, WMAction *action, void *data);
/* ....................................................................... */
+4 -2
View File
@@ -9,7 +9,7 @@
#include "WINGs.h"
#include "WUtil.h"
#if WINGS_H_VERSION < 981220
#if WINGS_H_VERSION < 990222
#error There_is_an_old_WINGs.h_file_somewhere_in_your_system._Please_remove_it.
#endif
@@ -59,6 +59,7 @@ typedef struct W_Font {
short height;
short y;
short refCount;
char *name;
unsigned int notFontSet:1;
} W_Font;
@@ -157,6 +158,8 @@ typedef struct W_Screen {
W_Font *boldFont;
WMHashTable *fontCache;
struct W_Pixmap *checkButtonImageOn;
struct W_Pixmap *checkButtonImageOff;
@@ -324,7 +327,6 @@ _WINGsConfiguration WINGsConfiguration;
#define W_VIEW_MAPPED(view) (view)->flags.mapped
#define W_PIXEL(c) (c)->color.pixel
#define W_GC(c) (c)->gc
#define W_FONTID(f) (f)->font->fid
+1 -1
View File
@@ -146,7 +146,7 @@ paintMyWidget(_MyWidget *mPtr)
color = WMWhiteColor(scr);
W_PaintText(mPtr->view, mPtr->view->window, scr->normalFont, 0, 0,
mPtr->view->size.width, WACenter, W_GC(color),
mPtr->view->size.width, WACenter, WMColorGC(color),
False, mPtr->text, strlen(mPtr->text));
WMReleaseColor(color);
+3 -5
View File
@@ -25,7 +25,7 @@ int main(int argc, char **argv)
WMScreen *scr;
WMPixmap *pixmap;
WMColorPanel *panel;
RColor startcolor;
WMInitializeApplication("WMColorPicker", &argc, argv);
@@ -44,10 +44,8 @@ int main(int argc, char **argv)
WMSetApplicationIconImage(scr, pixmap); WMReleasePixmap(pixmap);
panel = WMGetColorPanel(scr);
startcolor.red = 0;
startcolor.green = 0;
startcolor.blue = 255;
WMShowColorPanel(panel);
WMRunColorPanel(panel, NULL, startcolor);
WMScreenMainLoop(scr);
return 0;
}
+3 -2
View File
@@ -35,10 +35,11 @@ extern char *WMGetApplicationName();
char*
wusergnusteppath()
{
char *path;
static char *path = NULL;
char *gspath;
int pathlen;
if (!path) {
gspath = getenv("GNUSTEP_USER_ROOT");
if (gspath) {
gspath = wexpandpath(gspath);
@@ -52,6 +53,7 @@ wusergnusteppath()
strcpy(path, wgethomedir());
strcat(path, "/GNUstep");
}
}
return path;
}
@@ -66,7 +68,6 @@ wdefaultspathfordomain(char *domain)
gspath = wusergnusteppath();
path = wmalloc(strlen(gspath)+strlen(DEFAULTS_DIR)+strlen(domain)+4);
strcpy(path, gspath);
free(gspath);
strcat(path, DEFAULTS_DIR);
strcat(path, "/");
strcat(path, domain);
-1
View File
@@ -173,7 +173,6 @@ WMPathForResourceOfType(char *resource, char *ext)
tmp = wusergnusteppath();
if (tmp) {
path = checkFile(tmp, appdir, ext, resource);
free(tmp);
if (path) {
free(appdir);
return path;
+12 -16
View File
@@ -229,7 +229,7 @@ drawTitleOfColumn(WMBrowser *bPtr, int column)
x=(column-bPtr->firstVisibleColumn)*(bPtr->columnSize.width+COLUMN_SPACING);
XFillRectangle(scr->display, bPtr->view->window, W_GC(scr->darkGray), x, 0,
XFillRectangle(scr->display, bPtr->view->window, WMColorGC(scr->darkGray), x, 0,
bPtr->columnSize.width, bPtr->titleHeight);
W_DrawRelief(scr, bPtr->view->window, x, 0,
bPtr->columnSize.width, bPtr->titleHeight, WRSunken);
@@ -245,13 +245,13 @@ drawTitleOfColumn(WMBrowser *bPtr, int column)
&titleLen, widthC);
W_PaintText(bPtr->view, bPtr->view->window, scr->boldFont, x,
(bPtr->titleHeight-WMFontHeight(scr->boldFont))/2,
bPtr->columnSize.width, WACenter, W_GC(scr->white),
bPtr->columnSize.width, WACenter, WMColorGC(scr->white),
False, titleBuf, titleLen);
free (titleBuf);
} else {
W_PaintText(bPtr->view, bPtr->view->window, scr->boldFont, x,
(bPtr->titleHeight-WMFontHeight(scr->boldFont))/2,
bPtr->columnSize.width, WACenter, W_GC(scr->white),
bPtr->columnSize.width, WACenter, WMColorGC(scr->white),
False, bPtr->titles[column], titleLen);
}
}
@@ -267,7 +267,7 @@ WMSetBrowserColumnTitle(WMBrowser *bPtr, int column, char *title)
if (bPtr->titles[column])
free(bPtr->titles[column]);
bPtr->titles[column] = (title!=NULL) ? wstrdup(title) : wstrdup("");
bPtr->titles[column] = wstrdup(title);
if (COLUMN_IS_VISIBLE(bPtr, column) && bPtr->flags.isTitled) {
drawTitleOfColumn(bPtr, column);
@@ -517,7 +517,7 @@ paintItem(WMList *lPtr, int index, Drawable d, char *text, int state,
y = rect->pos.y;
if (state & WLDSSelected)
XFillRectangle(scr->display, d, W_GC(scr->white), x, y,
XFillRectangle(scr->display, d, WMColorGC(scr->white), x, y,
width, height);
else
XClearArea(scr->display, d, x, y, width, height, False);
@@ -530,24 +530,24 @@ paintItem(WMList *lPtr, int index, Drawable d, char *text, int state,
char *textBuf = createTruncatedString(scr->normalFont,
text, &textLen, widthC);
W_PaintText(view, d, scr->normalFont, x+4, y, widthC,
WALeft, W_GC(scr->black), False, textBuf, textLen);
WALeft, WMColorGC(scr->black), False, textBuf, textLen);
free(textBuf);
} else {
W_PaintText(view, d, scr->normalFont, x+4, y, widthC,
WALeft, W_GC(scr->black), False, text, textLen);
WALeft, WMColorGC(scr->black), False, text, textLen);
}
}
if (state & WLDSIsBranch) {
XDrawLine(scr->display, d, W_GC(scr->darkGray), x+width-11, y+3,
XDrawLine(scr->display, d, WMColorGC(scr->darkGray), x+width-11, y+3,
x+width-6, y+height/2);
if (state & WLDSSelected)
XDrawLine(scr->display, d,W_GC(scr->gray), x+width-11, y+height-5,
XDrawLine(scr->display, d,WMColorGC(scr->gray), x+width-11, y+height-5,
x+width-6, y+height/2);
else
XDrawLine(scr->display, d,W_GC(scr->white), x+width-11, y+height-5,
XDrawLine(scr->display, d,WMColorGC(scr->white), x+width-11, y+height-5,
x+width-6, y+height/2);
XDrawLine(scr->display, d, W_GC(scr->black), x+width-12, y+3,
XDrawLine(scr->display, d, WMColorGC(scr->black), x+width-12, y+3,
x+width-12, y+height-5);
}
}
@@ -893,12 +893,9 @@ listCallback(void *self, void *clientData)
int i;
item = WMGetListSelectedItem(lPtr);
if (!item) {
oldItem = item;
if (!item || oldItem == item)
return;
}
if (oldItem != item) {
for (i=0; i<bPtr->columnCount; i++) {
if (lPtr == bPtr->columns[i])
break;
@@ -917,7 +914,6 @@ listCallback(void *self, void *clientData)
else
i = bPtr->usedColumnCount-bPtr->maxVisibleColumns;
scrollToColumn(bPtr, i, True);
}
/* call callback for click */
if (bPtr->action)
+4 -4
View File
@@ -511,7 +511,7 @@ paintButton(Button *bPtr)
if (bPtr->flags.selected) {
if (bPtr->flags.stateLight)
gc = W_GC(scrPtr->white);
gc = WMColorGC(scrPtr->white);
if (bPtr->flags.stateChange) {
if (bPtr->altCaption) {
@@ -533,7 +533,7 @@ paintButton(Button *bPtr)
offset = 1;
}
if (bPtr->flags.pushLight)
gc = W_GC(scrPtr->white);
gc = WMColorGC(scrPtr->white);
if (bPtr->flags.pushChange) {
if (bPtr->altCaption) {
@@ -546,9 +546,9 @@ paintButton(Button *bPtr)
if (bPtr->flags.enabled)
textGC = W_GC(scrPtr->black);
textGC = WMColorGC(scrPtr->black);
else
textGC = W_GC(scrPtr->darkGray);
textGC = WMColorGC(scrPtr->darkGray);
W_PaintTextAndImage(bPtr->view, True, textGC,
(bPtr->font!=NULL ? bPtr->font : scrPtr->normalFont),
+17 -15
View File
@@ -31,7 +31,6 @@ findCloseColor(WMScreen *scr, unsigned short red, unsigned short green,
WMColor *color;
XColor xcolor;
RColor rcolor;
XGCValues gcv;
rcolor.red = red>>8;
rcolor.green = green>>8;
@@ -49,11 +48,7 @@ findCloseColor(WMScreen *scr, unsigned short red, unsigned short green,
color->refCount = 1;
color->color = xcolor;
color->flags.exact = 1;
gcv.foreground = color->color.pixel;
gcv.graphics_exposures = False;
color->gc = XCreateGC(scr->display, scr->rcontext->drawable,
GCForeground|GCGraphicsExposures, &gcv);
color->gc = NULL;
return color;
}
@@ -65,7 +60,6 @@ createRGBColor(WMScreen *scr, unsigned short red, unsigned short green,
unsigned short blue)
{
WMColor *color;
XGCValues gcv;
XColor xcolor;
xcolor.red = red;
@@ -81,11 +75,7 @@ createRGBColor(WMScreen *scr, unsigned short red, unsigned short green,
color->refCount = 1;
color->color = xcolor;
color->flags.exact = 1;
gcv.foreground = color->color.pixel;
gcv.graphics_exposures = False;
color->gc = XCreateGC(scr->display, scr->rcontext->drawable,
GCForeground|GCGraphicsExposures, &gcv);
color->gc = NULL;
return color;
}
@@ -117,6 +107,8 @@ WMCreateNamedColor(WMScreen *scr, char *name, Bool exact)
if (!XParseColor(scr->display, scr->colormap, name, &xcolor))
return NULL;
if (scr->visual->class == TrueColor)
exact = True;
if (!exact || !(color=createRGBColor(scr, xcolor.red, xcolor.green,
xcolor.blue))) {
@@ -146,6 +138,7 @@ WMReleaseColor(WMColor *color)
if (color->refCount < 1) {
XFreeColors(color->screen->display, color->screen->colormap,
&(color->color.pixel), 1, 0);
if (color->gc)
XFreeGC(color->screen->display, color->gc);
free(color);
}
@@ -156,7 +149,8 @@ void
WMPaintColorSwatch(WMColor *color, Drawable d, int x, int y,
unsigned int width, unsigned int height)
{
XFillRectangle(color->screen->display, d, color->gc, x, y, width, height);
XFillRectangle(color->screen->display, d, WMColorGC(color),
x, y, width, height);
}
@@ -170,6 +164,16 @@ WMColorPixel(WMColor *color)
GC
WMColorGC(WMColor *color)
{
if (!color->gc) {
XGCValues gcv;
WMScreen *scr = color->screen;
gcv.foreground = color->color.pixel;
gcv.graphics_exposures = False;
color->gc = XCreateGC(scr->display, scr->rcontext->drawable,
GCForeground|GCGraphicsExposures, &gcv);
}
return color->gc;
}
@@ -226,7 +230,6 @@ WMGrayColor(WMScreen *scr)
LIGHT_STIPPLE_HEIGHT);
color = createRGBColor(scr, 0xffff, 0xffff, 0xffff);
XFreeGC(scr->display, color->gc);
gcv.foreground = white->color.pixel;
gcv.background = black->color.pixel;
@@ -268,7 +271,6 @@ WMDarkGrayColor(WMScreen *scr)
DARK_STIPPLE_HEIGHT);
color = createRGBColor(scr, 0, 0, 0);
XFreeGC(scr->display, color->gc);
gcv.foreground = white->color.pixel;
gcv.background = black->color.pixel;
+381 -400
View File
File diff suppressed because it is too large Load Diff
+66 -1
View File
@@ -24,6 +24,9 @@ typedef struct W_ColorWell {
} flags;
} ColorWell;
static char *_ColorWellActivatedNotification = "_ColorWellActivatedNotification";
static void destroyColorWell(ColorWell *cPtr);
static void paintColorWell(ColorWell *cPtr);
@@ -36,6 +39,8 @@ static void handleActionEvents(XEvent *event, void *data);
static void resizeColorWell();
W_ViewProcedureTable _ColorWellViewProcedures = {
NULL,
resizeColorWell,
@@ -58,6 +63,21 @@ static WMDragSourceProcs dragProcs = {
static void
activatedObserver(void *data, WMNotification *notification)
{
WMColorWell *cPtr = (WMColorWell*)data;
if (!cPtr->flags.active || WMGetNotificationObject(notification) == cPtr)
return;
W_SetViewBackgroundColor(cPtr->view, WMWidgetScreen(cPtr)->gray);
paintColorWell(cPtr);
cPtr->flags.active = 0;
}
WMColorWell*
WMCreateColorWell(WMWidget *parent)
{
@@ -100,6 +120,11 @@ WMCreateColorWell(WMWidget *parent)
resizeColorWell(cPtr, DEFAULT_WIDTH, DEFAULT_HEIGHT);
WMAddNotificationObserver(activatedObserver, cPtr,
_ColorWellActivatedNotification, NULL);
cPtr->color = WMBlackColor(WMWidgetScreen(cPtr));
return cPtr;
}
@@ -379,14 +404,54 @@ handleDragEvents(XEvent *event, void *data)
static void
handleActionEvents(XEvent *event, void *data)
{
/* WMColorWell *cPtr = (ColorWell*)data;*/
WMColorWell *cPtr = (ColorWell*)data;
WMScreen *scr = WMWidgetScreen(cPtr);
WMColorPanel *cpanel;
if (cPtr->flags.active)
W_SetViewBackgroundColor(cPtr->view, scr->gray);
else
W_SetViewBackgroundColor(cPtr->view, scr->white);
paintColorWell(cPtr);
cPtr->flags.active ^= 1;
if (cPtr->flags.active) {
WMPostNotificationName(_ColorWellActivatedNotification, cPtr, NULL);
}
/*
cpanel = WMGetColorPanel(scr);
if (cPtr->color)
WMSetColorPanelColor(cpanel, cPtr->color);
WMShowColorPanel(cpanel);
*
*/
{
char *t;
WMColor *color;
t = WMRunInputPanel(scr, NULL, "Advanced Color Picker",
"Type a Color (this is temporary!!! I'm not THAT dumb :P)",
NULL, "OK", "Cancel");
if (t) {
color = WMCreateNamedColor(scr, t, False);
if (color) {
WMSetColorWellColor(cPtr, color);
WMReleaseColor(color);
}
free(t);
}
}
}
static void
destroyColorWell(ColorWell *cPtr)
{
WMRemoveNotificationObserver(cPtr);
if (cPtr->color)
WMReleaseColor(cPtr->color);
+21 -9
View File
@@ -104,16 +104,22 @@ textChangedObserver(void *observerData, WMNotification *notification)
char *text;
WMList *list;
int col = WMGetBrowserNumberOfColumns(panel->browser) - 1;
int i, j, textEvent;
int i, textEvent = (int)WMGetNotificationClientData(notification);
static int running = 0;
if (running)
return;
running = 1;
if (panel->flags.ignoreTextChangeNotification)
return;
if (!(list = WMGetBrowserListInColumn(panel->browser, col)))
list = WMGetBrowserListInColumn(panel->browser, col);
if (!list)
return;
text = WMGetTextFieldText(panel->fileField);
textEvent = (int)WMGetNotificationClientData(notification);
if (panel->flags.autoCompletion && textEvent!=WMDeleteTextEvent)
i = closestListItem(list, text, False);
@@ -126,16 +132,14 @@ textChangedObserver(void *observerData, WMNotification *notification)
int textLen = strlen(text), itemTextLen = strlen(item->text);
int visibleItems = WMWidgetHeight(list)/WMGetListItemHeight(list);
if (textEvent!=WMSetTextEvent || textLen<itemTextLen)
WMSetListPosition(list, i - visibleItems/2);
if (textEvent!=WMDeleteTextEvent) {
if (textEvent!=WMDeleteTextEvent && textLen<itemTextLen) {
WMRange range;
panel->flags.ignoreTextChangeNotification = 1;
WMInsertTextFieldText(panel->fileField, &item->text[textLen],
textLen);
panel->flags.ignoreTextChangeNotification = 0;
WMSetTextFieldCursorPosition(panel->fileField, itemTextLen);
range.position = textLen;
range.count = itemTextLen - textLen;
@@ -144,6 +148,7 @@ textChangedObserver(void *observerData, WMNotification *notification)
}
free(text);
running = 0;
}
@@ -317,12 +322,12 @@ WMRunModalFilePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
WMScreen *scr = WMWidgetScreen(panel->win);
XEvent event;
WMChangePanelOwner(panel->win, owner);
if (name && !owner) {
WMSetWindowTitle(panel->win, name);
}
WMChangePanelOwner(panel->win, owner);
WMSetFilePanelDirectory(panel, path);
panel->flags.done = 0;
@@ -346,12 +351,19 @@ WMRunModalFilePanelForDirectory(WMFilePanel *panel, WMWindow *owner,
WMSetLabelText(panel->titleLabel, name);
scr->modalView = W_VIEW(panel->win);
WMMapWidget(panel->win);
WMMoveWidget(panel->win,
(scr->rootView->size.width - WMWidgetWidth(panel->win))/2,
(scr->rootView->size.height - WMWidgetHeight(panel->win))/2);
scr->modal = 1;
while (!panel->flags.done) {
WMNextEvent(scr->display, &event);
WMHandleEvent(&event);
}
scr->modal = 0;
/* Must withdraw window because the next time we map
* it, it might have a different transient owner.
+18 -1
View File
@@ -18,9 +18,16 @@ WMCreateFont(WMScreen *scrPtr, char *fontName)
char *defaultString;
XFontSetExtents *extents;
font = WMHashGet(scrPtr->fontCache, fontName);
if (font) {
WMRetainFont(font);
return font;
}
font = malloc(sizeof(WMFont));
if (!font)
return NULL;
memset(font, 0, sizeof(WMFont));
font->notFontSet = 0;
@@ -53,6 +60,10 @@ WMCreateFont(WMScreen *scrPtr, char *fontName)
font->refCount = 1;
font->name = wstrdup(fontName);
assert(WMHashInsert(scrPtr->fontCache, font->name, font)==NULL);
return font;
}
@@ -67,6 +78,7 @@ WMCreateFontInDefaultEncoding(WMScreen *scrPtr, char *fontName)
font = malloc(sizeof(WMFont));
if (!font)
return NULL;
memset(font, 0, sizeof(WMFont));
font->notFontSet = 1;
@@ -108,8 +120,13 @@ WMReleaseFont(WMFont *font)
if (font->refCount < 1) {
if (font->notFontSet)
XFreeFont(font->screen->display, font->font.normal);
else
else {
XFreeFontSet(font->screen->display, font->font.set);
}
if (font->name) {
WMHashRemove(font->screen->fontCache, font->name);
free(font->name);
}
free(font);
}
}
+2 -2
View File
@@ -149,10 +149,10 @@ paintFrame(Frame *fPtr)
tx = (view->size.width - tw) / 2;
XFillRectangle(scrPtr->display, view->window, W_GC(scrPtr->gray),
XFillRectangle(scrPtr->display, view->window, WMColorGC(scrPtr->gray),
tx, ty, tw, th);
WMDrawString(scrPtr, view->window, W_GC(scrPtr->black),
WMDrawString(scrPtr, view->window, WMColorGC(scrPtr->black),
scrPtr->normalFont, tx, ty, fPtr->caption,
strlen(fPtr->caption));
}
+5 -4
View File
@@ -358,10 +358,10 @@ renderPixmap(W_Screen *screen, Pixmap d, Pixmap mask, char **data,
int width, int height)
{
int x, y;
GC whiteGC = W_GC(screen->white);
GC blackGC = W_GC(screen->black);
GC lightGC = W_GC(screen->gray);
GC darkGC = W_GC(screen->darkGray);
GC whiteGC = WMColorGC(screen->white);
GC blackGC = WMColorGC(screen->black);
GC lightGC = WMColorGC(screen->gray);
GC darkGC = WMColorGC(screen->darkGray);
if (mask)
@@ -583,6 +583,7 @@ WMCreateScreenWithRContext(Display *display, int screen, RContext *context)
scrPtr->rootWin = RootWindow(display, screen);
scrPtr->fontCache = WMCreateHashTable(WMStringPointerHashCallbacks);
/* initially allocate some colors */
WMWhiteColor(scrPtr);
+2 -2
View File
@@ -196,9 +196,9 @@ paintLabel(Label *lPtr)
GC gc;
if (lPtr->textColor)
gc = W_GC(lPtr->textColor);
gc = WMColorGC(lPtr->textColor);
else
gc = W_GC(scrPtr->black);
gc = WMColorGC(scrPtr->black);
W_PaintTextAndImage(lPtr->view, !lPtr->flags.noWrap, gc,
(lPtr->font!=NULL ? lPtr->font : scrPtr->normalFont),
+2 -2
View File
@@ -546,13 +546,13 @@ paintItem(List *lPtr, int index)
&rect);
} else {
if (itemPtr->selected)
XFillRectangle(scr->display, view->window, W_GC(scr->white), x, y,
XFillRectangle(scr->display, view->window, WMColorGC(scr->white), x, y,
width, height);
else
XClearArea(scr->display, view->window, x, y, width, height, False);
W_PaintText(view, view->window, scr->normalFont, x+4, y, width,
WALeft, W_GC(scr->black), False,
WALeft, WMColorGC(scr->black), False,
itemPtr->text, strlen(itemPtr->text));
}
}
+15 -15
View File
@@ -17,37 +17,37 @@ W_DrawRelief(W_Screen *scr, Drawable d, int x, int y, unsigned int width,
switch (relief) {
case WRSimple:
XDrawRectangle(dpy, d, W_GC(scr->black), x, y, width-1, height-1);
XDrawRectangle(dpy, d, WMColorGC(scr->black), x, y, width-1, height-1);
return;
break;
case WRRaised:
bgc = W_GC(scr->black);
dgc = W_GC(scr->darkGray);
wgc = W_GC(scr->white);
lgc = W_GC(scr->gray);
bgc = WMColorGC(scr->black);
dgc = WMColorGC(scr->darkGray);
wgc = WMColorGC(scr->white);
lgc = WMColorGC(scr->gray);
break;
case WRSunken:
wgc = W_GC(scr->darkGray);
lgc = W_GC(scr->black);
bgc = W_GC(scr->white);
dgc = W_GC(scr->gray);
wgc = WMColorGC(scr->darkGray);
lgc = WMColorGC(scr->black);
bgc = WMColorGC(scr->white);
dgc = WMColorGC(scr->gray);
break;
case WRPushed:
lgc = wgc = W_GC(scr->black);
dgc = bgc = W_GC(scr->white);
lgc = wgc = WMColorGC(scr->black);
dgc = bgc = WMColorGC(scr->white);
break;
case WRRidge:
lgc = bgc = W_GC(scr->darkGray);
dgc = wgc = W_GC(scr->white);
lgc = bgc = WMColorGC(scr->darkGray);
dgc = wgc = WMColorGC(scr->white);
break;
case WRGroove:
wgc = dgc = W_GC(scr->darkGray);
lgc = bgc = W_GC(scr->white);
wgc = dgc = WMColorGC(scr->darkGray);
lgc = bgc = WMColorGC(scr->white);
break;
default:
+28
View File
@@ -30,6 +30,34 @@ WMReleasePixmap(WMPixmap *pixmap)
}
WMPixmap*
WMCreatePixmap(WMScreen *scrPtr, int width, int height, int depth, Bool masked)
{
WMPixmap *pixPtr;
pixPtr = malloc(sizeof(WMPixmap));
if (!pixPtr) {
return NULL;
}
pixPtr->screen = scrPtr;
pixPtr->width = width;
pixPtr->height = height;
pixPtr->depth = depth;
pixPtr->refCount = 1;
pixPtr->pixmap = XCreatePixmap(scrPtr->display, W_DRAWABLE(scrPtr),
width, height, depth);
if (masked) {
pixPtr->mask = XCreatePixmap(scrPtr->display, W_DRAWABLE(scrPtr),
width, height, 1);
} else {
pixPtr->mask = None;
}
return pixPtr;
}
WMPixmap*
WMCreatePixmapFromXPixmaps(WMScreen *scrPtr, Pixmap pixmap, Pixmap mask,
int width, int height, int depth)
+8 -7
View File
@@ -403,7 +403,7 @@ paintPopUpButton(PopUpButton *bPtr)
pixmap = XCreatePixmap(scr->display, bPtr->view->window,
bPtr->view->size.width, bPtr->view->size.height,
scr->depth);
XFillRectangle(scr->display, pixmap, W_GC(scr->gray), 0, 0,
XFillRectangle(scr->display, pixmap, WMColorGC(scr->gray), 0, 0,
bPtr->view->size.width, bPtr->view->size.height);
W_DrawRelief(scr, pixmap, 0, 0, bPtr->view->size.width,
@@ -413,7 +413,7 @@ paintPopUpButton(PopUpButton *bPtr)
W_PaintText(bPtr->view, pixmap, scr->normalFont, 6,
(bPtr->view->size.height-WMFontHeight(scr->normalFont))/2,
bPtr->view->size.width, WALeft,
bPtr->flags.enabled ? W_GC(scr->black) : W_GC(scr->darkGray),
bPtr->flags.enabled ? WMColorGC(scr->black) : WMColorGC(scr->darkGray),
False, caption, strlen(caption));
}
@@ -489,7 +489,7 @@ paintMenuEntry(PopUpButton *bPtr, int index, int highlight)
return;
}
XFillRectangle(scr->display, bPtr->menuView->window, W_GC(scr->white),
XFillRectangle(scr->display, bPtr->menuView->window, WMColorGC(scr->white),
1, index*itemHeight+1, width-3, itemHeight-3);
itemPtr = bPtr->items;
@@ -500,7 +500,7 @@ paintMenuEntry(PopUpButton *bPtr, int index, int highlight)
width, itemHeight, WRRaised);
W_PaintText(bPtr->menuView, bPtr->menuView->window, scr->normalFont, 6,
index*itemHeight + yo, width, WALeft, W_GC(scr->black), False,
index*itemHeight + yo, width, WALeft, WMColorGC(scr->black), False,
itemPtr->text, strlen(itemPtr->text));
if (!bPtr->flags.pullsDown && index == bPtr->selectedItemIndex) {
@@ -531,7 +531,7 @@ makeMenuPixmap(PopUpButton *bPtr)
pixmap = XCreatePixmap(scr->display, bPtr->view->window, width, height,
scr->depth);
XFillRectangle(scr->display, pixmap, W_GC(scr->gray), 0, 0, width, height);
XFillRectangle(scr->display, pixmap, WMColorGC(scr->gray), 0, 0, width, height);
itemPtr = bPtr->items;
for (i = 0; i < bPtr->itemCount; i++) {
@@ -541,9 +541,9 @@ makeMenuPixmap(PopUpButton *bPtr)
WRRaised);
if (itemPtr->disabled)
gc = W_GC(scr->darkGray);
gc = WMColorGC(scr->darkGray);
else
gc = W_GC(scr->black);
gc = WMColorGC(scr->black);
W_PaintText(bPtr->menuView, pixmap, scr->normalFont, 6,
i*itemHeight + yo, width, WALeft, gc, False,
@@ -569,6 +569,7 @@ resizeMenu(PopUpButton *bPtr)
int height;
height = bPtr->itemCount * bPtr->view->size.height;
if (height > 0)
W_ResizeView(bPtr->menuView, bPtr->view->size.width, height);
}
+6 -6
View File
@@ -260,7 +260,7 @@ paintArrow(WMScroller *sPtr, Drawable d, int part)
#ifndef DOUBLE_BUFFER
if (sPtr->flags.decrDown)
gc = W_GC(scr->white);
gc = WMColorGC(scr->white);
#endif
} else { /* increment button */
if (sPtr->flags.horizontal) {
@@ -300,7 +300,7 @@ paintArrow(WMScroller *sPtr, Drawable d, int part)
ofs+1, 2+1, bsize+1-3, bsize-3);
#else
if ((!part&&sPtr->flags.decrDown) || (part&&sPtr->flags.incrDown))
XFillRectangle(scr->display, d, W_GC(scr->white),
XFillRectangle(scr->display, d, WMColorGC(scr->white),
ofs+1, 2+1, bsize+1-3, bsize-3);
#endif /* DOUBLE_BUFFER */
W_DrawRelief(scr, d, ofs, 2, bsize, bsize, WRRaised);
@@ -324,7 +324,7 @@ paintArrow(WMScroller *sPtr, Drawable d, int part)
2+1, ofs+1, bsize-3, bsize+1-3);
#else
if ((!part&&sPtr->flags.decrDown) || (part&&sPtr->flags.incrDown))
XFillRectangle(scr->display, d, W_GC(scr->white),
XFillRectangle(scr->display, d, WMColorGC(scr->white),
2+1, ofs+1, bsize-3, bsize+1-3);
#endif /* DOUBLE_BUFFER */
W_DrawRelief(scr, d, 2, ofs, bsize, bsize, WRRaised);
@@ -386,14 +386,14 @@ paintScroller(Scroller *sPtr)
#ifdef DOUBLE_BUFFER
d = XCreatePixmap(scr->display, view->window, view->size.width,
view->size.height, scr->depth);
XFillRectangle(scr->display, d, W_GC(scr->gray), 0, 0,
XFillRectangle(scr->display, d, WMColorGC(scr->gray), 0, 0,
view->size.width, view->size.height);
#endif
XDrawRectangle(scr->display, d, W_GC(scr->black), 0, 0,
XDrawRectangle(scr->display, d, WMColorGC(scr->black), 0, 0,
view->size.width-1, view->size.height-1);
#ifndef DOUBLE_BUFFER
XDrawRectangle(scr->display, d, W_GC(scr->gray), 1, 1,
XDrawRectangle(scr->display, d, WMColorGC(scr->gray), 1, 1,
view->size.width-3, view->size.height-3);
#endif
+37 -28
View File
@@ -245,43 +245,43 @@ makeKnobPixmap(Slider *sPtr)
}
pix = XCreatePixmap(scr->display, sPtr->view->window, w, h, scr->depth);
XFillRectangle(scr->display, pix, W_GC(scr->gray), 0, 0, w, h);
XFillRectangle(scr->display, pix, WMColorGC(scr->gray), 0, 0, w, h);
if (sPtr->knobThickness < 10) {
W_DrawRelief(scr, pix, 0, 0, w, h, WRRaised);
} else if (sPtr->flags.vertical) {
XDrawLine(scr->display, pix, W_GC(scr->white), 0, 0, 0, h-3);
XDrawLine(scr->display, pix, W_GC(scr->white), 1, 0, 1, h-3);
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w-2, 1, w-2, h/2-2);
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w-2, h/2, w-2, h-2);
XDrawLine(scr->display, pix, WMColorGC(scr->white), 0, 0, 0, h-3);
XDrawLine(scr->display, pix, WMColorGC(scr->white), 1, 0, 1, h-3);
XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), w-2, 1, w-2, h/2-2);
XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), w-2, h/2, w-2, h-2);
XDrawLine(scr->display, pix, W_GC(scr->white), 0, 0, w-2, 0);
XDrawLine(scr->display, pix, W_GC(scr->darkGray), 1, h/2-2, w-3, h/2-2);
XDrawLine(scr->display, pix, W_GC(scr->white), 0, h/2-1, w-3, h/2-1);
XDrawLine(scr->display, pix, WMColorGC(scr->white), 0, 0, w-2, 0);
XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), 1, h/2-2, w-3, h/2-2);
XDrawLine(scr->display, pix, WMColorGC(scr->white), 0, h/2-1, w-3, h/2-1);
XDrawLine(scr->display, pix, W_GC(scr->black), w-1, 0, w-1, h-2);
XDrawLine(scr->display, pix, WMColorGC(scr->black), w-1, 0, w-1, h-2);
XDrawLine(scr->display, pix, W_GC(scr->darkGray), 0, h-3, w-2, h-3);
XDrawLine(scr->display, pix, W_GC(scr->black), 0, h-2, w-1, h-2);
XDrawLine(scr->display, pix, W_GC(scr->darkGray), 0, h-1, w-1,h-1);
XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), 0, h-3, w-2, h-3);
XDrawLine(scr->display, pix, WMColorGC(scr->black), 0, h-2, w-1, h-2);
XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), 0, h-1, w-1,h-1);
} else {
XDrawLine(scr->display, pix, W_GC(scr->white), 0, 0, w-3, 0);
XDrawLine(scr->display, pix, WMColorGC(scr->white), 0, 0, w-3, 0);
XDrawLine(scr->display, pix, W_GC(scr->white), 0, 0, 0, h-2);
XDrawLine(scr->display, pix, WMColorGC(scr->white), 0, 0, 0, h-2);
XDrawLine(scr->display, pix, W_GC(scr->white), 1, 0, 1, h-3);
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w/2-2, 1, w/2-2, h-3);
XDrawLine(scr->display, pix, W_GC(scr->white), w/2-1, 0, w/2-1, h-3);
XDrawLine(scr->display, pix, WMColorGC(scr->white), 1, 0, 1, h-3);
XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), w/2-2, 1, w/2-2, h-3);
XDrawLine(scr->display, pix, WMColorGC(scr->white), w/2-1, 0, w/2-1, h-3);
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w-3, 0, w-3, h-2);
XDrawLine(scr->display, pix, W_GC(scr->black), w-2, 0, w-2, h-2);
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w-1, 0, w-1, h-1);
XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), w-3, 0, w-3, h-2);
XDrawLine(scr->display, pix, WMColorGC(scr->black), w-2, 0, w-2, h-2);
XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), w-1, 0, w-1, h-1);
XDrawLine(scr->display, pix, W_GC(scr->black), 1, h-1, w/2+1, h-1);
XDrawLine(scr->display, pix, W_GC(scr->darkGray), 1, h-2, w/2-2, h-2);
XDrawLine(scr->display, pix, W_GC(scr->darkGray), w/2, h-2, w-3,h-2);
XDrawLine(scr->display, pix, WMColorGC(scr->black), 1, h-1, w/2+1, h-1);
XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), 1, h-2, w/2-2, h-2);
XDrawLine(scr->display, pix, WMColorGC(scr->darkGray), w/2, h-2, w-3,h-2);
XDrawLine(scr->display, pix, W_GC(scr->black), 0, h-1, w-2, h-1);
XDrawLine(scr->display, pix, WMColorGC(scr->black), 0, h-1, w-2, h-1);
}
if (sPtr->knobPixmap)
@@ -339,9 +339,9 @@ paintSlider(Slider *sPtr)
#define MAXV sPtr->maxValue
#define POSV sPtr->value
bgc = W_GC(scr->black);
wgc = W_GC(scr->white);
lgc = W_GC(scr->gray);
bgc = WMColorGC(scr->black);
wgc = WMColorGC(scr->white);
lgc = WMColorGC(scr->gray);
buffer = XCreatePixmap(scr->display, sPtr->view->window,
size.width, size.height, scr->depth);
@@ -487,12 +487,21 @@ handleActionEvents(XEvent *event, void *data)
#else
int tmp;
tmp = valueForMousePoint(sPtr, event->xmotion.x, event->xmotion.y);
if (event->xbutton.button == Button2) {
sPtr->flags.dragging = 1;
sPtr->value = valueForMousePoint(sPtr, event->xmotion.x,
event->xmotion.y);
paintSlider(sPtr);
} else {
tmp = valueForMousePoint(sPtr, event->xmotion.x,
event->xmotion.y);
if (tmp < sPtr->value)
tmp = sPtr->value-1;
else
tmp = sPtr->value+1;
WMSetSliderValue(sPtr, tmp);
}
#endif
if (sPtr->flags.continuous && sPtr->action) {
+7 -9
View File
@@ -410,14 +410,14 @@ WMSetTextFieldSecure(WMTextField *tPtr, Bool flag)
Bool
WMGetTextFieldEnabled(WMTextField *tPtr)
WMGetTextFieldEditable(WMTextField *tPtr)
{
return tPtr->flags.enabled;
}
void
WMSetTextFieldEnabled(WMTextField *tPtr, Bool flag)
WMSetTextFieldEditable(WMTextField *tPtr, Bool flag)
{
tPtr->flags.enabled = flag;
@@ -581,15 +581,15 @@ drawRelief(WMView *view, Bool beveled)
int width = view->size.width;
int height = view->size.height;
dgc = W_GC(scr->darkGray);
dgc = WMColorGC(scr->darkGray);
if (!beveled) {
XDrawRectangle(dpy, view->window, dgc, 0, 0, width-1, height-1);
return;
}
wgc = W_GC(scr->white);
lgc = W_GC(scr->gray);
wgc = WMColorGC(scr->white);
lgc = WMColorGC(scr->gray);
/* top left */
XDrawLine(dpy, view->window, dgc, 0, 0, width-1, 0);
@@ -820,8 +820,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
switch (ksym) {
case XK_Tab:
if (event->xkey.state & ShiftMask) {
if (tPtr->view->prevFocusChain &&
tPtr->view->prevFocusChain->flags.mapped) {
if (tPtr->view->prevFocusChain) {
W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view),
tPtr->view->prevFocusChain);
tPtr->flags.notIllegalMovement = 1;
@@ -829,8 +828,7 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
WMPostNotificationName(WMTextDidEndEditingNotification, tPtr,
(void*)WMBacktabTextMovement);
} else {
if (tPtr->view->nextFocusChain &&
tPtr->view->nextFocusChain->flags.mapped) {
if (tPtr->view->nextFocusChain) {
W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view),
tPtr->view->nextFocusChain);
tPtr->flags.notIllegalMovement = 1;
+6 -29
View File
@@ -102,33 +102,6 @@ adoptChildView(W_View *view, W_View *child)
}
static void
getPosition(Display *dpy, Window win, int *x_ret, int *y_ret)
{
unsigned foo;
Window bar;
Window parent;
Window *childs;
int x, y;
XGetGeometry(dpy, win, &bar, &x, &y, &foo, &foo, &foo, &foo);
if (XQueryTree(dpy, win, &bar, &parent, &childs, &foo)) {
int px, py;
XFree(childs);
if (parent != bar) {
getPosition(dpy, parent, &px, &py);
x += px;
y += py;
}
}
*x_ret = x;
*y_ret = y;
}
static void
handleEvents(XEvent *event, void *data)
{
@@ -154,8 +127,12 @@ handleEvents(XEvent *event, void *data)
view->pos.x = event->xconfigure.x;
view->pos.y = event->xconfigure.y;
} else {
getPosition(view->screen->display, view->window,
&view->pos.x, &view->pos.y);
Window foo;
XTranslateCoordinates(view->screen->display,
view->window, view->screen->rootWin,
event->xconfigure.x, event->xconfigure.y,
&view->pos.x, &view->pos.y, &foo);
}
}
}
+193 -35
View File
@@ -1,4 +1,4 @@
/* TextureAndColor.c- color/texture for titlebar etc.
/* Apperance.c- color/texture for titlebar etc.
*
* WPrefs - Window Maker Preferences Program
*
@@ -33,7 +33,7 @@ typedef struct _Panel {
WMWindow *win;
WMLabel *prevL;
WMButton *prevB;
WMPopUpButton *secP;
@@ -41,10 +41,30 @@ typedef struct _Panel {
WMLabel *texL;
WMList *texLs;
WMPopUpButton *cmdP;
WMTextField *texT;
WMButton *newB;
WMButton *editB;
WMButton *ripB;
WMButton *delB;
proplist_t ftitleTex;
proplist_t utitleTex;
proplist_t ptitleTex;
proplist_t iconTex;
proplist_t menuTex;
proplist_t mtitleTex;
proplist_t backTex;
int ftitleIndex;
int utitleIndex;
int ptitleIndex;
int iconIndex;
int menuIndex;
int mtitleIndex;
int backIndex;
WMFont *normalFont;
WMFont *selectedFont;
/* for preview shit */
Pixmap preview;
@@ -59,9 +79,13 @@ typedef struct _Panel {
#define ICON_FILE "appearance"
#define TNEW_FILE "tnew"
#define TDEL_FILE "tdel"
#define TEDIT_FILE "tedit"
#define TEXTR_FILE "textr"
#define FTITLE (1<<0)
#define UTITLE (1<<1)
@@ -136,12 +160,62 @@ getStrArrayForKey(char *key)
}
#endif
static void
newTexture(WMButton *bPtr, void *data)
{
_Panel *panel = (_Panel*)data;
}
static void
changePage(WMWidget *w, void *data)
{
_Panel *panel = (_Panel*)data;
int section;
section = WMGetPopUpButtonSelectedItem(panel->secP);
WMSelectListItem(panel->texLs, section);
}
static void
selectTexture(WMWidget *w, void *data)
{
_Panel *panel = (_Panel*)data;
int section;
section = WMGetListSelectedItemRow(panel->secP);
}
static void
fillTextureList(WMList *lPtr)
{
proplist_t textures;
WMUserDefaults *udb = WMGetStandardUserDefaults();
textures = WMGetUDObjectForKey(udb, "Textures");
if (!textures)
return;
}
static void
createPanel(Panel *p)
{
_Panel *panel = (_Panel*)p;
WMColor *color;
WMFont *boldFont;
WMFont *font;
WMScreen *scr = WMWidgetScreen(panel->win);
panel->frame = WMCreateFrame(panel->win);
@@ -149,25 +223,31 @@ createPanel(Panel *p)
WMMoveWidget(panel->frame, FRAME_LEFT, FRAME_TOP);
/* preview box */
panel->prevL = WMCreateLabel(panel->frame);
WMResizeWidget(panel->prevL, 260, 190);
WMMoveWidget(panel->prevL, 10, 10);
WMSetLabelRelief(panel->prevL, WRSunken);
panel->prevB = WMCreateCommandButton(panel->frame);
WMResizeWidget(panel->prevB, 260, 165);
WMMoveWidget(panel->prevB, 15, 10);
WMSetButtonImagePosition(panel->prevB, WIPImageOnly);
panel->secP = WMCreatePopUpButton(panel->frame);
WMResizeWidget(panel->secP, 242, 20);
WMMoveWidget(panel->secP, 10, 207);
/* WMSetPopUpButtonAction(panel->secP, changePage, panel);
*/
WMResizeWidget(panel->secP, 260, 20);
WMMoveWidget(panel->secP, 15, 180);
WMSetPopUpButtonSelectedItem(panel->secP, 0);
WMAddPopUpButtonItem(panel->secP, _("Titlebar of Focused Window"));
WMAddPopUpButtonItem(panel->secP, _("Titlebar of Unfocused Windows"));
WMAddPopUpButtonItem(panel->secP, _("Titlebar of Focused Window's Owner"));
WMAddPopUpButtonItem(panel->secP, _("Titlebar of Menus"));
WMAddPopUpButtonItem(panel->secP, _("Menu Items"));
WMAddPopUpButtonItem(panel->secP, _("Icon Background"));
WMAddPopUpButtonItem(panel->secP, _("Workspace Backgrounds"));
WMSetPopUpButtonAction(panel->secP, changePage, panel);
/* texture list */
boldFont = WMBoldSystemFontOfSize(scr, 12);
font = WMBoldSystemFontOfSize(scr, 12);
panel->texL = WMCreateLabel(panel->frame);
WMResizeWidget(panel->texL, 225, 18);
WMMoveWidget(panel->texL, 285, 10);
WMSetLabelFont(panel->texL, boldFont);
WMSetLabelFont(panel->texL, font);
WMSetLabelText(panel->texL, _("Textures"));
WMSetLabelRelief(panel->texL, WRSunken);
WMSetLabelTextAlignment(panel->texL, WACenter);
@@ -178,31 +258,52 @@ createPanel(Panel *p)
WMSetLabelTextColor(panel->texL, color);
WMReleaseColor(color);
WMReleaseFont(boldFont);
WMReleaseFont(font);
panel->texLs = WMCreateList(panel->frame);
WMResizeWidget(panel->texLs, 225, 144);
WMMoveWidget(panel->texLs, 285, 30);
panel->cmdP = WMCreatePopUpButton(panel->frame);
WMResizeWidget(panel->cmdP, 225, 20);
WMMoveWidget(panel->cmdP, 285, 180);
WMSetPopUpButtonPullsDown(panel->cmdP, True);
WMSetPopUpButtonText(panel->cmdP, _("Texture Commands"));
WMAddPopUpButtonItem(panel->cmdP, _("Create New"));
WMAddPopUpButtonItem(panel->cmdP, _("Add From Text Field"));
WMAddPopUpButtonItem(panel->cmdP, _("Remove Selected"));
WMAddPopUpButtonItem(panel->cmdP, _("Extract From File"));
/* command buttons */
font = WMSystemFontOfSize(scr, 10);
panel->newB = WMCreateCommandButton(panel->frame);
WMResizeWidget(panel->newB, 56, 48);
WMMoveWidget(panel->newB, 285, 180);
WMSetButtonFont(panel->newB, font);
WMSetButtonImagePosition(panel->newB, WIPAbove);
WMSetButtonText(panel->newB, _("New"));
SetButtonAlphaImage(scr, panel->newB, TNEW_FILE);
panel->ripB = WMCreateCommandButton(panel->frame);
WMResizeWidget(panel->ripB, 56, 48);
WMMoveWidget(panel->ripB, 341, 180);
WMSetButtonFont(panel->ripB, font);
WMSetButtonImagePosition(panel->ripB, WIPAbove);
WMSetButtonText(panel->ripB, _("Extract..."));
SetButtonAlphaImage(scr, panel->ripB, TEXTR_FILE);
panel->editB = WMCreateCommandButton(panel->frame);
WMResizeWidget(panel->editB, 64, 20);
WMMoveWidget(panel->editB, 260, 207);
WMSetButtonText(panel->editB, _("Browse..."));
WMResizeWidget(panel->editB, 56, 48);
WMMoveWidget(panel->editB, 397, 180);
WMSetButtonFont(panel->editB, font);
WMSetButtonImagePosition(panel->editB, WIPAbove);
WMSetButtonText(panel->editB, _("Edit"));
SetButtonAlphaImage(scr, panel->editB, TEDIT_FILE);
WMSetButtonEnabled(panel->editB, False);
panel->texT = WMCreateTextField(panel->frame);
WMResizeWidget(panel->texT, 176, 20);
WMMoveWidget(panel->texT, 330, 207);
panel->delB = WMCreateCommandButton(panel->frame);
WMResizeWidget(panel->delB, 56, 48);
WMMoveWidget(panel->delB, 453, 180);
WMSetButtonFont(panel->delB, font);
WMSetButtonImagePosition(panel->delB, WIPAbove);
WMSetButtonText(panel->delB, _("Delete"));
SetButtonAlphaImage(scr, panel->delB, TDEL_FILE);
WMSetButtonEnabled(panel->delB, False);
WMReleaseFont(font);
/**/
@@ -211,8 +312,65 @@ createPanel(Panel *p)
WMSetPopUpButtonSelectedItem(panel->secP, 0);
showData(panel);
fillTextureList(panel->texLs);
}
static proplist_t
setupTextureFor(WMList *list, char *key, char *defValue, char *title)
{
WMListItem *item;
char *tex, *str;
proplist_t prop;
prop = GetObjectForKey(key);
if (!prop) {
prop = PLMakeString(defValue);
}
tex = PLGetDescription(prop);
str = wstrappend(title, tex);
free(tex);
item = WMAddListItem(list, str);
free(str);
item->clientData = prop;
return prop;
}
static void
showData(_Panel *panel)
{
panel->ftitleTex = setupTextureFor(panel->texLs, "FTitleBack",
"(solid, black)", "[Focused]:");
panel->ftitleIndex = 0;
panel->utitleTex = setupTextureFor(panel->texLs, "UTitleBack",
"(solid, gray)", "[Unfocused]:");
panel->utitleIndex = 1;
panel->ptitleTex = setupTextureFor(panel->texLs, "PTitleBack",
"(solid, \"#616161\")",
"[Owner of Focused]:");
panel->ptitleIndex = 2;
panel->mtitleTex = setupTextureFor(panel->texLs, "MenuTitleBack",
"(solid, black)", "[Menu Title]:");
panel->mtitleIndex = 3;
panel->menuTex = setupTextureFor(panel->texLs, "MenuTextBack",
"(solid, gray)", "[Menu Item]:");
panel->menuIndex = 4;
panel->iconTex = setupTextureFor(panel->texLs, "IconBack",
"(solid, gray)", "[Icon]:");
panel->iconIndex = 5;
panel->backTex = setupTextureFor(panel->texLs, "WorkspaceBack",
"(solid, black)", "[Workspace]:");
panel->backIndex = 6;
}
-1
View File
@@ -30,7 +30,6 @@ WPrefs_SOURCES = \
Paths.c \
Preferences.c \
Text.c \
TextureAndColor.c \
TexturePanel.c \
TexturePanel.h \
Themes.c \
+3 -3
View File
@@ -101,7 +101,7 @@ wpdata_DATA = WPrefs.tiff WPrefs.xpm
EXTRA_DIST = $(wpdata_DATA) TexturePanel.icons
WPrefs_SOURCES = main.c WPrefs.c WPrefs.h Appearance.c Configurations.c Expert.c Focus.c Icons.c KeyboardSettings.c KeyboardShortcuts.c Menu.c MenuPreferences.c MouseSettings.c NoMenuAlert.c Paths.c Preferences.c Text.c TextureAndColor.c TexturePanel.c TexturePanel.h Themes.c WindowHandling.c Workspace.c double.c double.h editmenu.c editmenu.h MenuGuru.c xmodifier.c
WPrefs_SOURCES = main.c WPrefs.c WPrefs.h Appearance.c Configurations.c Expert.c Focus.c Icons.c KeyboardSettings.c KeyboardShortcuts.c Menu.c MenuPreferences.c MouseSettings.c NoMenuAlert.c Paths.c Preferences.c Text.c TexturePanel.c TexturePanel.h Themes.c WindowHandling.c Workspace.c double.c double.h editmenu.c editmenu.h MenuGuru.c xmodifier.c
CPPFLAGS = @CPPFLAGS@ -DLOCALEDIR=\"$(NLSDIR)\"
@@ -128,8 +128,8 @@ X_PRE_LIBS = @X_PRE_LIBS@
WPrefs_OBJECTS = main.o WPrefs.o Appearance.o Configurations.o Expert.o \
Focus.o Icons.o KeyboardSettings.o KeyboardShortcuts.o Menu.o \
MenuPreferences.o MouseSettings.o NoMenuAlert.o Paths.o Preferences.o \
Text.o TextureAndColor.o TexturePanel.o Themes.o WindowHandling.o \
Workspace.o double.o editmenu.o MenuGuru.o xmodifier.o
Text.o TexturePanel.o Themes.o WindowHandling.o Workspace.o double.o \
editmenu.o MenuGuru.o xmodifier.o
WPrefs_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+1
View File
@@ -1347,6 +1347,7 @@ showData(_Panel *panel)
if (!menu || !PLIsArray(menu)) {
if (AskMenuCopy(panel->win)) {
panel->dontSave = 0;
panel->unsaved = 1;
pmenu = getDefaultMenu(panel, &hasWSMenu);
} else {
+49 -15
View File
@@ -55,6 +55,8 @@ typedef struct _Panel {
WMFrame *ddelaF;
WMButton *ddelaB[5];
WMTextField *ddelaT;
WMLabel *ddelaL;
DoubleTest *tester;
WMFrame *menuF;
@@ -143,7 +145,8 @@ speedClick(WMWidget *w, void *data)
tmp = WMGetTextFieldText(panel->acceT);
if (sscanf(tmp, "%f", &accel)!=1 || accel < 0) {
WMRunAlertPanel(WMWidgetScreen(w), GetWindow(panel), _("Error"),
WMRunAlertPanel(WMWidgetScreen(panel->acceT), GetWindow(panel),
_("Error"),
_("Invalid mouse acceleration value. Must be a positive real value."),
_("OK"), NULL, NULL);
free(tmp);
@@ -192,12 +195,16 @@ doubleClick(WMWidget *w, void *data)
_Panel *panel = (_Panel*)data;
int i;
extern _WINGsConfiguration WINGsConfiguration;
char buffer[32];
for (i=0; i<5; i++) {
if (panel->ddelaB[i]==w)
break;
}
WINGsConfiguration.doubleClickDelay = DELAY(i);
sprintf(buffer, "%i", DELAY(i));
WMSetTextFieldText(panel->ddelaT, buffer);
}
@@ -302,26 +309,33 @@ showData(_Panel *panel)
}
sprintf(buffer, "%i", a);
WMSetTextFieldText(panel->threT, buffer);
/* find best match */
a = 0;
a = -1;
for (i=0; i<5; i++) {
if (fabs((0.5+((float)i*0.5))-accel) < fabs((0.5+((float)a*0.5))-accel))
if (0.5+(float)i*0.5 == accel)
a = i;
}
if (a >= 0) {
WMPerformButtonClick(panel->speedB[a]);
panel->lastClickedSpeed = panel->speedB[a];
}
panel->acceleration = accel;
sprintf(buffer, "%.2f", accel);
WMSetTextFieldText(panel->acceT, buffer);
speedClick(panel->lastClickedSpeed, panel);
/**/
b = GetIntegerForKey("DoubleClickTime");
/* find best match */
a = 0;
a = -1;
for (i=0; i<5; i++) {
if (abs(b - DELAY(i)) < abs(b - DELAY(a)))
if (DELAY(i) == b)
a = i;
}
if (a >= 0)
WMPerformButtonClick(panel->ddelaB[a]);
sprintf(buffer, "%i", b);
WMSetTextFieldText(panel->ddelaT, buffer);
/**/
str = GetStringForKey("ModifierKey");
@@ -577,13 +591,14 @@ createPanel(Panel *p)
free(buf2);
panel->acceL = WMCreateLabel(panel->speedF);
WMResizeWidget(panel->acceL, 80, 16);
WMResizeWidget(panel->acceL, 70, 16);
WMMoveWidget(panel->acceL, 10, 67);
WMSetLabelTextAlignment(panel->acceL, WARight);
WMSetLabelText(panel->acceL, _("Acceler.:"));
panel->acceT = WMCreateTextField(panel->speedF);
WMResizeWidget(panel->acceT, 35, 20);
WMMoveWidget(panel->acceT, 85, 65);
WMResizeWidget(panel->acceT, 40, 20);
WMMoveWidget(panel->acceT, 80, 65);
WMAddNotificationObserver(returnPressed, panel,
WMTextDidEndEditingNotification, panel->acceT);
@@ -591,6 +606,7 @@ createPanel(Panel *p)
panel->threL = WMCreateLabel(panel->speedF);
WMResizeWidget(panel->threL, 80, 16);
WMMoveWidget(panel->threL, 120, 67);
WMSetLabelTextAlignment(panel->threL, WARight);
WMSetLabelText(panel->threL, _("Threshold:"));
panel->threT = WMCreateTextField(panel->speedF);
@@ -652,7 +668,27 @@ createPanel(Panel *p)
panel->tester = CreateDoubleTest(panel->ddelaF, _("Test"));
WMResizeWidget(panel->tester, 84, 29);
WMMoveWidget(panel->tester, 85, 55);
WMMoveWidget(panel->tester, 35, 55);
panel->ddelaT = WMCreateTextField(panel->ddelaF);
WMResizeWidget(panel->ddelaT, 40, 20);
WMMoveWidget(panel->ddelaT, 140, 60);
panel->ddelaL = WMCreateLabel(panel->ddelaF);
WMResizeWidget(panel->ddelaL, 40, 16);
WMMoveWidget(panel->ddelaL, 185, 65);
{
WMFont *font;
WMColor *color;
font = WMSystemFontOfSize(scr, 10);
color = WMDarkGrayColor(scr);
WMSetLabelTextColor(panel->ddelaL, color);
WMSetLabelFont(panel->ddelaL, font);
WMReleaseFont(font);
WMReleaseColor(color);
}
WMSetLabelText(panel->ddelaL, "msec");
WMMapSubwidgets(panel->ddelaF);
@@ -878,11 +914,9 @@ storeData(_Panel *panel)
free(tmp);
}
for (i=0; i<5; i++) {
if (WMGetButtonSelected(panel->ddelaB[i]))
break;
}
SetIntegerForKey(DELAY(i), "DoubleClickTime");
tmp = WMGetTextFieldText(panel->ddelaT);
if (sscanf(tmp, "%i", &i) == 1 && i > 0)
SetIntegerForKey(i, "DoubleClickTime");
SetBoolForKey(WMGetButtonSelected(panel->disaB), "DisableWSMouseActions");
+6 -5
View File
@@ -42,15 +42,15 @@ typedef struct NoMenuPanel {
"This either means that there is a syntax error in it or that "\
"the menu is in a format not supported by WPrefs (WPrefs only "\
"supports property list menus).\n"\
" If you want to change the current menu, please read "\
"the '%s' file, press 'Keep Current Menu' and edit it with a "\
" If you want to keep using the current menu, please read "\
"the '%s/%s' file, press 'Keep Current Menu' and edit it with a "\
"text editor.\n"\
" If you want to use this editor, press 'Copy Default Menu'. "\
"It will copy the default menu and will instruct Window Maker "\
"to use it instead of the current one.\n"\
" If you want more flexibility, keep using the current one "\
"as it allows you to use C preprocessor (cpp) macros, while being "\
"easy to edit."
"easy to edit. Window Maker supports both formats."
static void
@@ -79,7 +79,7 @@ Bool
AskMenuCopy(WMWindow *wwin)
{
NoMenuPanel panel;
char buffer[1024];
char buffer[2048];
panel.wwin = WMCreatePanelForWindow(wwin, "noMenuAlert");
WMResizeWidget(panel.wwin, 430, 260);
@@ -90,7 +90,8 @@ AskMenuCopy(WMWindow *wwin)
WMResizeWidget(panel.text, 370, 200);
WMMoveWidget(panel.text, 30, 20);
sprintf(buffer, _(MESSAGE_TEXT), "shit/ewq/ewq/rweq");
sprintf(buffer, _(MESSAGE_TEXT), wusergnusteppath(),
"Library/WindowMaker/README");
WMSetLabelText(panel.text, buffer);
panel.copyBtn = WMCreateCommandButton(panel.wwin);
-686
View File
@@ -1,686 +0,0 @@
/* TextureAndColor.c- color/texture for titlebar etc.
*
* WPrefs - Window Maker Preferences Program
*
* Copyright (c) 1998 Alfredo K. Kojima
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#include "WPrefs.h"
#include "TexturePanel.h"
typedef struct _Panel {
WMFrame *frame;
char *sectionName;
CallbackRec callbacks;
WMWindow *win;
WMPopUpButton *secP;
WMLabel *prevL;
/* window titlebar */
WMFrame *focF;
WMColorWell *focC;
WMLabel *focL;
WMTextField *focT;
WMLabel *foc2L;
WMButton *focB;
WMFrame *unfF;
WMColorWell *unfC;
WMLabel *unfL;
WMTextField *unfT;
WMLabel *unf2L;
WMButton *unfB;
WMFrame *ownF;
WMColorWell *ownC;
WMLabel *ownL;
WMTextField *ownT;
WMLabel *own2L;
WMButton *ownB;
/* menu title */
WMFrame *backF;
WMTextField *backT;
WMButton *backB;
WMFrame *textF;
WMColorWell *textC;
/* menu items */
WMFrame *unsF;
WMTextField *unsT;
WMButton *unsB;
WMLabel *unsL;
WMColorWell *unsnC;
WMLabel *unsnL;
WMColorWell *unsdC;
WMLabel *unsdL;
WMFrame *selF;
WMColorWell *seltC;
WMLabel *seltL;
WMColorWell *selbC;
WMLabel *selbL;
/* workspace/clip */
WMFrame *workF;
WMTextField *workT;
WMButton *workB;
WMFrame *clipF;
WMColorWell *clipnC;
WMColorWell *clipcC;
WMLabel *clipnL;
WMLabel *clipcL;
/* icon */
WMFrame *iconF;
WMTextField *iconT;
WMButton *iconB;
Pixmap preview;
Pixmap ftitle;
Pixmap utitle;
Pixmap otitle;
Pixmap icon;
Pixmap back;
Pixmap mtitle;
Pixmap mitem;
} _Panel;
#define ICON_FILE "appearance"
#define FTITLE (1<<0)
#define UTITLE (1<<1)
#define OTITLE (1<<2)
#define ICON (1<<3)
#define BACK (1<<4)
#define MTITLE (1<<5)
#define MITEM (1<<6)
#define EVERYTHING 0xff
static Pixmap
renderTexture(_Panel *panel, char *texture, int width, int height,
Bool bordered)
{
return None;
}
static void
updatePreviewBox(_Panel *panel, int elements)
{
WMScreen *scr = WMWidgetScreen(panel->win);
Display *dpy = WMScreenDisplay(scr);
/* RContext *rc = WMScreenRContext(scr);*/
int refresh = 0;
char *tmp;
if (!panel->preview) {
panel->preview = XCreatePixmap(dpy, WMWidgetXID(panel->win),
220-4, 185-4, WMScreenDepth(scr));
refresh = -1;
}
if (elements & FTITLE) {
if (panel->ftitle)
XFreePixmap(dpy, panel->ftitle);
tmp = WMGetTextFieldText(panel->focT);
panel->ftitle = renderTexture(panel, tmp, 180, 20, True);
free(tmp);
}
/* have to repaint everything to make things simple, eliminating
* clipping stuff */
if (refresh) {
}
if (refresh<0) {
WMPixmap *pix;
pix = WMCreatePixmapFromXPixmaps(scr, panel->preview, None,
220-4, 185-4, WMScreenDepth(scr));
WMSetLabelImage(panel->prevL, pix);
WMReleasePixmap(pix);
}
}
static void
changePage(WMWidget *self, void *data)
{
int i;
_Panel *panel = (_Panel*)data;
i = WMGetPopUpButtonSelectedItem(self);
if (i==0) {
WMMapWidget(panel->focF);
WMMapWidget(panel->unfF);
WMMapWidget(panel->ownF);
} else if (i==1) {
WMMapWidget(panel->backF);
WMMapWidget(panel->textF);
} else if (i==2) {
WMMapWidget(panel->unsF);
WMMapWidget(panel->selF);
} else if (i==3) {
WMMapWidget(panel->workF);
WMMapWidget(panel->clipF);
} else if (i==4) {
WMMapWidget(panel->iconF);
}
if (i!=0) {
WMUnmapWidget(panel->focF);
WMUnmapWidget(panel->unfF);
WMUnmapWidget(panel->ownF);
}
if (i!=1) {
WMUnmapWidget(panel->backF);
WMUnmapWidget(panel->textF);
}
if (i!=2) {
WMUnmapWidget(panel->unsF);
WMUnmapWidget(panel->selF);
}
if (i!=3) {
WMUnmapWidget(panel->workF);
WMUnmapWidget(panel->clipF);
}
if (i!=4) {
WMUnmapWidget(panel->iconF);
}
}
static char*
getStrArrayForKey(char *key)
{
proplist_t v;
v = GetObjectForKey(key);
if (!v)
return NULL;
return PLGetDescription(v);
}
static void
showData(_Panel *panel)
{
char *str;
WMScreen *scr = WMWidgetScreen(panel->win);
WMColor *color;
str = GetStringForKey("FTitleColor");
if (!str)
str = "white";
color = WMCreateNamedColor(scr, str, True);
WMSetColorWellColor(panel->focC, color);
WMReleaseColor(color);
str = GetStringForKey("PTitleColor");
if (!str)
str = "white";
color = WMCreateNamedColor(scr, str, True);
WMSetColorWellColor(panel->ownC, color);
WMReleaseColor(color);
str = GetStringForKey("UTitleColor");
if (!str)
str = "black";
color = WMCreateNamedColor(scr, str, True);
WMSetColorWellColor(panel->unfC, color);
WMReleaseColor(color);
str = getStrArrayForKey("FTitleBack");
if (!str)
str = wstrdup("(solid, black)");
WMSetTextFieldText(panel->focT, str);
free(str);
str = getStrArrayForKey("PTitleBack");
if (!str)
str = wstrdup("(solid, gray40)");
WMSetTextFieldText(panel->ownT, str);
free(str);
str = getStrArrayForKey("UTitleBack");
if (!str)
str = wstrdup("(solid, grey66)");
WMSetTextFieldText(panel->unfT, str);
free(str);
/**/
str = GetStringForKey("MenuTitleColor");
if (!str)
str = "white";
color = WMCreateNamedColor(scr, str, True);
WMSetColorWellColor(panel->textC, color);
WMReleaseColor(color);
str = getStrArrayForKey("MenuTitleBack");
if (!str)
str = wstrdup("(solid, black)");
WMSetTextFieldText(panel->backT, str);
free(str);
/**/
str = getStrArrayForKey("MenuTextBack");
if (!str)
str = wstrdup("gray66");
WMSetTextFieldText(panel->unsT, str);
free(str);
str = GetStringForKey("MenuTextColor");
if (!str)
str = "black";
color = WMCreateNamedColor(scr, str, True);
WMSetColorWellColor(panel->unsnC, color);
WMReleaseColor(color);
str = GetStringForKey("MenuDisabledColor");
if (!str)
str = "gray40";
color = WMCreateNamedColor(scr, str, True);
WMSetColorWellColor(panel->unsdC, color);
WMReleaseColor(color);
str = GetStringForKey("HighlightTextColor");
if (!str)
str = "white";
color = WMCreateNamedColor(scr, str, True);
WMSetColorWellColor(panel->seltC, color);
WMReleaseColor(color);
str = GetStringForKey("HighlightColor");
if (!str)
str = "black";
color = WMCreateNamedColor(scr, str, True);
WMSetColorWellColor(panel->selbC, color);
WMReleaseColor(color);
/**/
str = getStrArrayForKey("WorkspaceBack");
WMSetTextFieldText(panel->workT, str);
if (str)
free(str);
str = GetStringForKey("ClipTitleColor");
if (!str)
str = "black";
color = WMCreateNamedColor(scr, str, True);
WMSetColorWellColor(panel->clipnC, color);
WMReleaseColor(color);
str = GetStringForKey("CClipTitleColor");
if (!str)
str = "grey40";
color = WMCreateNamedColor(scr, str, True);
WMSetColorWellColor(panel->clipcC, color);
WMReleaseColor(color);
/**/
str = getStrArrayForKey("IconBack");
if (!str)
str = wstrdup("(solid, gray66)");
WMSetTextFieldText(panel->iconT, str);
free(str);
}
static void
createPanel(Panel *p)
{
_Panel *panel = (_Panel*)p;
panel->frame = WMCreateFrame(panel->win);
WMResizeWidget(panel->frame, FRAME_WIDTH, FRAME_HEIGHT);
WMMoveWidget(panel->frame, FRAME_LEFT, FRAME_TOP);
panel->secP = WMCreatePopUpButton(panel->frame);
WMResizeWidget(panel->secP, 220, 20);
WMMoveWidget(panel->secP, 15, 10);
WMSetPopUpButtonAction(panel->secP, changePage, panel);
WMAddPopUpButtonItem(panel->secP, _("Window Title Bar"));
WMAddPopUpButtonItem(panel->secP, _("Menu Title Bar"));
WMAddPopUpButtonItem(panel->secP, _("Menu Items"));
WMAddPopUpButtonItem(panel->secP, _("Workspace/Clip"));
WMAddPopUpButtonItem(panel->secP, _("Icons"));
panel->prevL = WMCreateLabel(panel->frame);
WMResizeWidget(panel->prevL, 220, 185);
WMMoveWidget(panel->prevL, 15, 40);
WMSetLabelRelief(panel->prevL, WRSunken);
/* window titlebar */
panel->focF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->focF, 265, 70);
WMMoveWidget(panel->focF, 245, 5);
WMSetFrameTitle(panel->focF, _("Focused Window"));
panel->focC = WMCreateColorWell(panel->focF);
WMResizeWidget(panel->focC, 60, 35);
WMMoveWidget(panel->focC, 15, 15);
panel->focT = WMCreateTextField(panel->focF);
WMResizeWidget(panel->focT, 116, 20);
WMMoveWidget(panel->focT, 85, 25);
panel->foc2L = WMCreateLabel(panel->focF);
WMResizeWidget(panel->foc2L, 165, 16);
WMMoveWidget(panel->foc2L, 90, 50);
WMSetLabelText(panel->foc2L, _("Texture"));
WMSetLabelTextAlignment(panel->foc2L, WACenter);
panel->focL = WMCreateLabel(panel->focF);
WMResizeWidget(panel->focL, 100, 16);
WMMoveWidget(panel->focL, 15, 50);
WMSetLabelText(panel->focL, _("Text Color"));
panel->focB = WMCreateCommandButton(panel->focF);
WMResizeWidget(panel->focB, 48, 22);
WMMoveWidget(panel->focB, 205, 24);
WMSetButtonText(panel->focB, _("Set..."));
WMMapSubwidgets(panel->focF);
/**/
panel->unfF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->unfF, 265, 70);
WMMoveWidget(panel->unfF, 245, 80);
WMSetFrameTitle(panel->unfF, _("Unfocused Window"));
panel->unfC = WMCreateColorWell(panel->unfF);
WMResizeWidget(panel->unfC, 60, 35);
WMMoveWidget(panel->unfC, 15, 15);
panel->unfT = WMCreateTextField(panel->unfF);
WMResizeWidget(panel->unfT, 116, 20);
WMMoveWidget(panel->unfT, 85, 25);
panel->unf2L = WMCreateLabel(panel->unfF);
WMResizeWidget(panel->unf2L, 165, 16);
WMMoveWidget(panel->unf2L, 90, 50);
WMSetLabelText(panel->unf2L, _("Texture"));
WMSetLabelTextAlignment(panel->unf2L, WACenter);
panel->unfL = WMCreateLabel(panel->unfF);
WMResizeWidget(panel->unfL, 100, 16);
WMMoveWidget(panel->unfL, 15, 50);
WMSetLabelText(panel->unfL, _("Text Color"));
panel->unfB = WMCreateCommandButton(panel->unfF);
WMResizeWidget(panel->unfB, 48, 22);
WMMoveWidget(panel->unfB, 205, 24);
WMSetButtonText(panel->unfB, _("Set..."));
WMMapSubwidgets(panel->unfF);
/**/
panel->ownF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->ownF, 265, 70);
WMMoveWidget(panel->ownF, 245, 155);
WMSetFrameTitle(panel->ownF, _("Owner of Focused Window"));
panel->ownC = WMCreateColorWell(panel->ownF);
WMResizeWidget(panel->ownC, 60, 35);
WMMoveWidget(panel->ownC, 15, 15);
panel->ownT = WMCreateTextField(panel->ownF);
WMResizeWidget(panel->ownT, 116, 20);
WMMoveWidget(panel->ownT, 85, 25);
panel->own2L = WMCreateLabel(panel->ownF);
WMResizeWidget(panel->own2L, 165, 16);
WMMoveWidget(panel->own2L, 90, 50);
WMSetLabelText(panel->own2L, _("Texture"));
WMSetLabelTextAlignment(panel->own2L, WACenter);
panel->ownL = WMCreateLabel(panel->ownF);
WMResizeWidget(panel->ownL, 100, 16);
WMMoveWidget(panel->ownL, 15, 50);
WMSetLabelText(panel->ownL, _("Text Color"));
panel->ownB = WMCreateCommandButton(panel->ownF);
WMResizeWidget(panel->ownB, 48, 22);
WMMoveWidget(panel->ownB, 205, 24);
WMSetButtonText(panel->ownB, _("Set..."));
WMMapSubwidgets(panel->ownF);
/***************** Menu Item *****************/
panel->unsF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->unsF, 260, 140);
WMMoveWidget(panel->unsF, 250, 5);
WMSetFrameTitle(panel->unsF, _("Unselected Items"));
panel->unsT = WMCreateTextField(panel->unsF);
WMResizeWidget(panel->unsT, 175, 20);
WMMoveWidget(panel->unsT, 15, 25);
panel->unsL = WMCreateLabel(panel->unsF);
WMResizeWidget(panel->unsL, 175, 16);
WMMoveWidget(panel->unsL, 15, 50);
WMSetLabelTextAlignment(panel->unsL, WACenter);
WMSetLabelText(panel->unsL, _("Background"));
panel->unsB = WMCreateCommandButton(panel->unsF);
WMResizeWidget(panel->unsB, 48, 22);
WMMoveWidget(panel->unsB, 200, 24);
WMSetButtonText(panel->unsB, _("Set..."));
panel->unsnC = WMCreateColorWell(panel->unsF);
WMResizeWidget(panel->unsnC, 60, 40);
WMMoveWidget(panel->unsnC, 40, 75);
panel->unsnL = WMCreateLabel(panel->unsF);
WMResizeWidget(panel->unsnL, 120, 16);
WMMoveWidget(panel->unsnL, 10, 117);
WMSetLabelTextAlignment(panel->unsnL, WACenter);
WMSetLabelText(panel->unsnL, _("Normal Text"));
panel->unsdC = WMCreateColorWell(panel->unsF);
WMResizeWidget(panel->unsdC, 60, 40);
WMMoveWidget(panel->unsdC, 160, 75);
panel->unsdL = WMCreateLabel(panel->unsF);
WMResizeWidget(panel->unsdL, 120, 16);
WMMoveWidget(panel->unsdL, 130, 117);
WMSetLabelTextAlignment(panel->unsdL, WACenter);
WMSetLabelText(panel->unsdL, _("Disabled Text"));
WMMapSubwidgets(panel->unsF);
/**/
panel->selF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->selF, 260, 75);
WMMoveWidget(panel->selF, 250, 150);
WMSetFrameTitle(panel->selF, _("Selected Items"));
panel->seltC = WMCreateColorWell(panel->selF);
WMResizeWidget(panel->seltC, 60, 36);
WMMoveWidget(panel->seltC, 40, 20);
panel->seltL = WMCreateLabel(panel->selF);
WMResizeWidget(panel->seltL, 120, 16);
WMMoveWidget(panel->seltL, 10, 56);
WMSetLabelTextAlignment(panel->seltL, WACenter);
WMSetLabelText(panel->seltL, _("Text"));
panel->selbC = WMCreateColorWell(panel->selF);
WMResizeWidget(panel->selbC, 60, 36);
WMMoveWidget(panel->selbC, 160, 20);
panel->selbL = WMCreateLabel(panel->selF);
WMResizeWidget(panel->selbL, 120, 16);
WMMoveWidget(panel->selbL, 130, 56);
WMSetLabelTextAlignment(panel->selbL, WACenter);
WMSetLabelText(panel->selbL, _("Background"));
WMMapSubwidgets(panel->selF);
/***************** Menu Title *****************/
panel->backF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->backF, 260, 110);
WMMoveWidget(panel->backF, 250, 35);
WMSetFrameTitle(panel->backF, _("Menu Title Background"));
panel->backT = WMCreateTextField(panel->backF);
WMResizeWidget(panel->backT, 210, 20);
WMMoveWidget(panel->backT, 25, 35);
panel->backB = WMCreateCommandButton(panel->backF);
WMResizeWidget(panel->backB, 50, 24);
WMMoveWidget(panel->backB, 185, 60);
WMSetButtonText(panel->backB, _("Set..."));
WMMapSubwidgets(panel->backF);
/**/
panel->textF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->textF, 260, 75);
WMMoveWidget(panel->textF, 250, 150);
WMSetFrameTitle(panel->textF, _("Menu Title Text"));
panel->textC = WMCreateColorWell(panel->textF);
WMResizeWidget(panel->textC, 60, 40);
WMMoveWidget(panel->textC, 100, 20);
WMMapSubwidgets(panel->textF);
/***************** Workspace ****************/
panel->workF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->workF, 260, 90);
WMMoveWidget(panel->workF, 250, 35);
WMSetFrameTitle(panel->workF, _("Workspace Background"));
panel->workT = WMCreateTextField(panel->workF);
WMResizeWidget(panel->workT, 220, 20);
WMMoveWidget(panel->workT, 20, 25);
panel->workB = WMCreateCommandButton(panel->workF);
WMResizeWidget(panel->workB, 70, 24);
WMMoveWidget(panel->workB, 170, 55);
WMSetButtonText(panel->workB, _("Change"));
/**/
panel->clipF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->clipF, 260, 90);
WMMoveWidget(panel->clipF, 250, 135);
WMSetFrameTitle(panel->clipF, _("Clip Title Text"));
panel->clipnC = WMCreateColorWell(panel->clipF);
WMResizeWidget(panel->clipnC, 60, 40);
WMMoveWidget(panel->clipnC, 40, 25);
panel->clipnL = WMCreateLabel(panel->clipF);
WMResizeWidget(panel->clipnL, 120, 16);
WMMoveWidget(panel->clipnL, 10, 70);
WMSetLabelTextAlignment(panel->clipnL, WACenter);
WMSetLabelText(panel->clipnL, _("Normal"));
panel->clipcC = WMCreateColorWell(panel->clipF);
WMResizeWidget(panel->clipcC, 60, 40);
WMMoveWidget(panel->clipcC, 160, 25);
panel->clipcL = WMCreateLabel(panel->clipF);
WMResizeWidget(panel->clipcL, 120, 16);
WMMoveWidget(panel->clipcL, 130, 70);
WMSetLabelTextAlignment(panel->clipcL, WACenter);
WMSetLabelText(panel->clipcL, _("Collapsed"));
WMMapSubwidgets(panel->clipF);
WMMapSubwidgets(panel->workF);
/***************** Icon *****************/
panel->iconF = WMCreateFrame(panel->frame);
WMResizeWidget(panel->iconF, 260, 190);
WMMoveWidget(panel->iconF, 250, 35);
WMSetFrameTitle(panel->iconF, _("Icon Background"));
panel->iconT = WMCreateTextField(panel->iconF);
WMResizeWidget(panel->iconT, 220, 20);
WMMoveWidget(panel->iconT, 20, 80);
panel->iconB = WMCreateCommandButton(panel->iconF);
WMResizeWidget(panel->iconB, 50, 24);
WMMoveWidget(panel->iconB, 190, 105);
WMSetButtonText(panel->iconB, _("Set..."));
WMMapSubwidgets(panel->iconF);
/**/
WMRealizeWidget(panel->frame);
WMMapSubwidgets(panel->frame);
WMSetPopUpButtonSelectedItem(panel->secP, 0);
changePage(panel->secP, panel);
showData(panel);
}
Panel*
InitTextureAndColor(WMScreen *scr, WMWindow *win)
{
_Panel *panel;
panel = wmalloc(sizeof(_Panel));
memset(panel, 0, sizeof(_Panel));
panel->sectionName = _("Texture and Color Preferences");
panel->win = win;
panel->callbacks.createWidgets = createPanel;
AddSection(panel, ICON_FILE);
return panel;
}
+5 -3
View File
@@ -2,7 +2,7 @@
*
* WPrefs - WindowMaker Preferences Program
*
* Copyright (c) 1998 Alfredo K. Kojima
* Copyright (c) 1998, 1999 Alfredo K. Kojima
* Copyright (c) 1998 James Thompson
*
* This program is free software; you can redistribute it and/or modify
@@ -87,7 +87,9 @@ typedef struct _TexturePanel {
char *WMGetColorWellRGBString(WMColorWell *cPtr) {
char*
WMGetColorWellRGBString(WMColorWell *cPtr)
{
char *rgbString;
WMColor *color;
@@ -990,7 +992,7 @@ void testCancelButton(WMWidget *self, void *data){
void wAbort()
{
exit(1);
exit(1);
}
int main(int argc, char **argv)
+32 -26
View File
@@ -55,8 +55,6 @@ extern Panel *InitIcons(WMScreen *scr, WMWindow *win);
extern Panel *InitThemes(WMScreen *scr, WMWindow *win);
extern Panel *InitTextureAndColor(WMScreen *scr, WMWindow *win);
extern Panel *InitAppearance(WMScreen *scr, WMWindow *win);
@@ -373,32 +371,20 @@ LocateImage(char *name)
void
AddSection(Panel *panel, char *iconFile)
SetButtonAlphaImage(WMScreen *scr, WMButton *bPtr, char *file)
{
WMButton *bPtr;
WMPixmap *icon;
RColor color;
char *iconPath;
assert(WPrefs.sectionCount < MAX_SECTIONS);
iconPath = LocateImage(iconFile);
bPtr = WMCreateCustomButton(WPrefs.buttonF, WBBStateLightMask
|WBBStateChangeMask);
WMResizeWidget(bPtr, 64, 64);
WMMoveWidget(bPtr, WPrefs.sectionCount*64, 0);
WMSetButtonImagePosition(bPtr, WIPImageOnly);
WMSetButtonAction(bPtr, changeSection, panel);
WMHangData(bPtr, panel);
iconPath = LocateImage(file);
color.red = 0xae;
color.green = 0xaa;
color.blue = 0xae;
color.alpha = 0;
if (iconPath) {
icon = WMCreateBlendedPixmapFromFile(WMWidgetScreen(WPrefs.win),
iconPath, &color);
icon = WMCreateBlendedPixmapFromFile(scr, iconPath, &color);
if (!icon)
wwarning(_("could not load icon file %s"), iconPath);
} else {
@@ -415,8 +401,7 @@ AddSection(Panel *panel, char *iconFile)
color.blue = 0xff;
color.alpha = 0;
if (iconPath) {
icon = WMCreateBlendedPixmapFromFile(WMWidgetScreen(WPrefs.win),
iconPath, &color);
icon = WMCreateBlendedPixmapFromFile(scr, iconPath, &color);
if (!icon)
wwarning(_("could not load icon file %s"), iconPath);
} else {
@@ -428,6 +413,29 @@ AddSection(Panel *panel, char *iconFile)
if (icon)
WMReleasePixmap(icon);
if (iconPath)
free(iconPath);
}
void
AddSection(Panel *panel, char *iconFile)
{
WMButton *bPtr;
assert(WPrefs.sectionCount < MAX_SECTIONS);
bPtr = WMCreateCustomButton(WPrefs.buttonF, WBBStateLightMask
|WBBStateChangeMask);
WMResizeWidget(bPtr, 64, 64);
WMMoveWidget(bPtr, WPrefs.sectionCount*64, 0);
WMSetButtonImagePosition(bPtr, WIPImageOnly);
WMSetButtonAction(bPtr, changeSection, panel);
WMHangData(bPtr, panel);
SetButtonAlphaImage(WMWidgetScreen(bPtr), bPtr, iconFile);
WMMapWidget(bPtr);
WPrefs.sectionB[WPrefs.sectionCount] = bPtr;
@@ -439,8 +447,6 @@ AddSection(Panel *panel, char *iconFile)
WPrefs.sectionCount++;
WMResizeWidget(WPrefs.buttonF, WPrefs.sectionCount*64, 64);
free(iconPath);
}
@@ -494,7 +500,7 @@ Initialize(WMScreen *scr)
loadConfigurations(scr, WPrefs.win);
WMSetLabelText(WPrefs.statusL, _("Initializing configuration panels..."));
#if 1
InitWindowHandling(scr, WPrefs.win);
InitFocus(scr, WPrefs.win);
InitMenuPreferences(scr, WPrefs.win);
@@ -504,22 +510,22 @@ Initialize(WMScreen *scr)
InitPaths(scr, WPrefs.win);
InitWorkspace(scr, WPrefs.win);
InitConfigurations(scr, WPrefs.win);
#endif
InitMenu(scr, WPrefs.win);
#if 1
#ifdef not_yet_fully_implemented
InitKeyboardSettings(scr, WPrefs.win);
#endif
InitKeyboardShortcuts(scr, WPrefs.win);
InitMouseSettings(scr, WPrefs.win);
#ifdef not_yet_fully_implemented
InitAppearance(scr, WPrefs.win);
InitText(scr, WPrefs.win);
InitThemes(scr, WPrefs.win);
#endif
InitExpert(scr, WPrefs.win);
#endif
WMRealizeWidget(WPrefs.scrollV);
WMSetLabelText(WPrefs.statusL,
+3 -1
View File
@@ -42,7 +42,7 @@
/****/
#define WVERSION "0.11"
#define WVERSION "0.20"
#define WMVERSION "0.51.x"
@@ -73,6 +73,8 @@ void AddSection(Panel *panel, char *iconFile);
char *LocateImage(char *name);
void SetButtonAlphaImage(WMScreen *scr, WMButton *bPtr, char *file);
WMWindow *GetWindow(Panel *panel);
/* manipulate the dictionary for the WindowMaker domain */
+15 -9
View File
@@ -223,7 +223,7 @@ createPanel(Panel *p)
WMSetFrameTitle(panel->placF, _("Window Placement"));
panel->placP = WMCreatePopUpButton(panel->placF);
WMResizeWidget(panel->placP, 120, 20);
WMResizeWidget(panel->placP, 105, 20);
WMMoveWidget(panel->placP, 15, 20);
WMAddPopUpButtonItem(panel->placP, _("Automatic"));
WMAddPopUpButtonItem(panel->placP, _("Random"));
@@ -231,7 +231,7 @@ createPanel(Panel *p)
WMAddPopUpButtonItem(panel->placP, _("Cascade"));
panel->porigL = WMCreateLabel(panel->placF);
WMResizeWidget(panel->porigL, 138, 32);
WMResizeWidget(panel->porigL, 120, 32);
WMMoveWidget(panel->porigL, 5, 45);
WMSetLabelTextAlignment(panel->porigL, WACenter);
WMSetLabelText(panel->porigL, _("Placement Origin"));
@@ -250,15 +250,21 @@ createPanel(Panel *p)
swidth = WidthOfScreen(DefaultScreenOfDisplay(WMScreenDisplay(scr)));
sheight = HeightOfScreen(DefaultScreenOfDisplay(WMScreenDisplay(scr)));
if (120*sheight/swidth < 70*swidth/sheight) {
width = 70*swidth/sheight;
if (sheight > swidth) {
height = 70;
width = 70*swidth/sheight;
if (width > 115)
width = 115;
height = 115*sheight/swidth;
} else {
height = 120*sheight/swidth;
width = 120;
width = 115;
height = 115*sheight/swidth;
if (height > 70)
height = 70;
width = 70*swidth/sheight;
}
WMResizeWidget(panel->porigF, width, height);
WMMoveWidget(panel->porigF, 135+(120-width)/2, 20+(70-height)/2);
WMMoveWidget(panel->porigF, 130+(115-width)/2, 20+(70-height)/2);
panel->porigW = WMCreateLabel(panel->porigF);
WMResizeWidget(panel->porigW, THUMB_SIZE, THUMB_SIZE);
@@ -268,14 +274,14 @@ createPanel(Panel *p)
panel->hsli = WMCreateSlider(panel->placF);
WMResizeWidget(panel->hsli, width, 12);
WMMoveWidget(panel->hsli, 135+(120-width)/2, 20+(70-height)/2+height+2);
WMMoveWidget(panel->hsli, 130+(115-width)/2, 20+(70-height)/2+height+2);
WMSetSliderAction(panel->hsli, sliderCallback, panel);
WMSetSliderMinValue(panel->hsli, 0);
WMSetSliderMaxValue(panel->hsli, swidth);
panel->vsli = WMCreateSlider(panel->placF);
WMResizeWidget(panel->vsli, 12, height);
WMMoveWidget(panel->vsli, 135+(120-width)/2+width+2, 20+(70-height)/2);
WMMoveWidget(panel->vsli, 130+(115-width)/2+width+2, 20+(70-height)/2);
WMSetSliderAction(panel->vsli, sliderCallback, panel);
WMSetSliderMinValue(panel->vsli, 0);
WMSetSliderMaxValue(panel->vsli, sheight);
+2 -2
View File
@@ -105,7 +105,7 @@ paintDoubleTest(_DoubleTest *dPtr)
W_Screen *scr = dPtr->view->screen;
if (dPtr->active) {
XFillRectangle(scr->display, dPtr->view->window, W_GC(scr->white),
XFillRectangle(scr->display, dPtr->view->window, WMColorGC(scr->white),
0, 0, dPtr->view->size.width, dPtr->view->size.height);
} else {
XClearWindow(scr->display, dPtr->view->window);
@@ -119,7 +119,7 @@ paintDoubleTest(_DoubleTest *dPtr)
y = (dPtr->view->size.height-scr->normalFont->height)/2;
W_PaintText(dPtr->view, dPtr->view->window, scr->normalFont,
dPtr->on, dPtr->on+y, dPtr->view->size.width, WACenter,
W_GC(scr->black), False, dPtr->text, strlen(dPtr->text));
WMColorGC(scr->black), False, dPtr->text, strlen(dPtr->text));
}
}
+4 -4
View File
@@ -150,7 +150,7 @@ paintEditMenuItem(WEditMenuItem *iPtr)
W_DrawRelief(scr, win, 0, 0, w+1, h, WRRaised);
WMDrawString(scr, win, W_GC(black), scr->normalFont, 5, 3, iPtr->label,
WMDrawString(scr, win, WMColorGC(black), scr->normalFont, 5, 3, iPtr->label,
strlen(iPtr->label));
}
@@ -366,7 +366,7 @@ WInsertMenuItemWithTitle(WEditMenu *mPtr, char *title, int index)
index = mPtr->itemCount;
if (mPtr->itemCount == mPtr->itemsAlloced) {
WEditMenuItem **newList;
WEditMenuItem *newList;
newList = wmalloc(sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10));
memset(newList, 0, sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10));
@@ -458,11 +458,11 @@ paintMenuTitle(WEditMenu *mPtr)
int w = W_VIEW(mPtr)->size.width;
int h = mPtr->titleHeight;
XFillRectangle(scr->display, win, W_GC(black), 0, 0, w, h);
XFillRectangle(scr->display, win, WMColorGC(black), 0, 0, w, h);
W_DrawRelief(scr, win, 0, 0, w+1, h, WRRaised);
WMDrawString(scr, win, W_GC(white), scr->boldFont, 5, 4, mPtr->label,
WMDrawString(scr, win, WMColorGC(white), scr->boldFont, 5, 4, mPtr->label,
strlen(mPtr->label));
}
+1 -1
View File
@@ -165,7 +165,7 @@ main(int argc, char **argv)
wfatal(_("could not open display %s"), XDisplayName(display_name));
exit(0);
}
#if 1
#if 0
XSynchronize(dpy, 1);
#endif
scr = WMCreateScreen(dpy, DefaultScreen(dpy));
+1 -1
View File
@@ -1,6 +1,6 @@
CATALOGS = @WPMOFILES@
nlsdir = $(DESTDIR)$(NLSDIR)
nlsdir = $(NLSDIR)
CLEANFILES = $(CATALOGS)
+1 -1
View File
@@ -89,7 +89,7 @@ wprefsdir = @wprefsdir@
CATALOGS = @WPMOFILES@
nlsdir = $(DESTDIR)$(NLSDIR)
nlsdir = $(NLSDIR)
CLEANFILES = $(CATALOGS)
+1 -2
View File
@@ -1,6 +1,6 @@
{
OpenTransientOnOwnerWorkspace = NO;
EdgeResistance = YES;
EdgeResistance = 30;
IconificationStyle = Zoom;
IconPath = (
"~/GNUstep/Library/Icons",
@@ -48,7 +48,6 @@
AutoArrangeIcons = NO;
AdvanceToNewWorkspace = NO;
CycleWorkspaces = NO;
WindozeCycling = NO;
ResizeDisplay = line;
MoveDisplay = floating;
OpaqueMove = YES;
+1 -2
View File
@@ -1,6 +1,6 @@
{
OpenTransientOnOwnerWorkspace = NO;
EdgeResistance = YES;
EdgeResistance = 30;
IconificationStyle = Zoom;
IconPath = (
"~/GNUstep/Library/Icons",
@@ -48,7 +48,6 @@
AutoArrangeIcons = NO;
AdvanceToNewWorkspace = NO;
CycleWorkspaces = NO;
WindozeCycling = NO;
ResizeDisplay = line;
MoveDisplay = floating;
OpaqueMove = YES;
+1 -1
View File
@@ -1,4 +1,4 @@
SUBDIRS = Night.themed Checker.themed
SUBDIRS = Night.themed Checker.themed LeetWM.themed STEP2000.themed
defsdatadir = $(pkgdatadir)/Themes
+2 -2
View File
@@ -87,7 +87,7 @@ XLIBS = @XLIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
wprefsdir = @wprefsdir@
SUBDIRS = Night.themed Checker.themed
SUBDIRS = Night.themed Checker.themed LeetWM.themed STEP2000.themed
defsdatadir = $(pkgdatadir)/Themes
@@ -104,7 +104,7 @@ DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
+1 -1
View File
@@ -103,7 +103,7 @@ DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

+7
View File
@@ -0,0 +1,7 @@
defsdatadir = $(pkgdatadir)/Themes/STEP2000.themed
defsdata_DATA = \
BlueImage2.jpeg\
style
EXTRA_DIST = $(defsdata_DATA)
+220
View File
@@ -0,0 +1,220 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../../..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
CC = @CC@
CPP_PATH = @CPP_PATH@
DFLAGS = @DFLAGS@
GFXLIBS = @GFXLIBS@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@
INTLIBS = @INTLIBS@
LD = @LD@
LIBPL = @LIBPL@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBTOOL = @LIBTOOL@
LITE = @LITE@
LN_S = @LN_S@
MAKEINFO = @MAKEINFO@
MOFILES = @MOFILES@
NLSDIR = @NLSDIR@
NM = @NM@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
VERSION = @VERSION@
WPMOFILES = @WPMOFILES@
XCFLAGS = @XCFLAGS@
XGETTEXT = @XGETTEXT@
XLFLAGS = @XLFLAGS@
XLIBS = @XLIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
wprefsdir = @wprefsdir@
defsdatadir = $(pkgdatadir)/Themes/STEP2000.themed
defsdata_DATA = BlueImage2.jpeg style
EXTRA_DIST = $(defsdata_DATA)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../../../src/config.h
CONFIG_CLEAN_FILES =
DATA = $(defsdata_DATA)
DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps WindowMaker/Themes/STEP2000.themed/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
install-defsdataDATA: $(defsdata_DATA)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(defsdatadir)
@list='$(defsdata_DATA)'; for p in $$list; do \
if test -f $(srcdir)/$$p; then \
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(defsdatadir)/$$p"; \
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(defsdatadir)/$$p; \
else if test -f $$p; then \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(defsdatadir)/$$p"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(defsdatadir)/$$p; \
fi; fi; \
done
uninstall-defsdataDATA:
@$(NORMAL_UNINSTALL)
list='$(defsdata_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(defsdatadir)/$$p; \
done
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = WindowMaker/Themes/STEP2000.themed
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data-am: install-defsdataDATA
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-defsdataDATA
uninstall: uninstall-am
all-am: Makefile $(DATA)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(defsdatadir)
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-generic clean-am
-rm -f libtool
distclean: distclean-am
maintainer-clean-am: maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-am
.PHONY: uninstall-defsdataDATA install-defsdataDATA tags distdir info-am \
info dvi-am dvi check check-am installcheck-am installcheck \
install-exec-am install-exec install-data-am install-data install-am \
install uninstall-am uninstall all-redirect all-am all installdirs \
mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
+48
View File
@@ -0,0 +1,48 @@
{
TitleJustify = left;
ClipTitleFont = "-*-helvetica-bold-r-normal-*-10-*-*-*-*-*-*-*";
WindowTitleFont = "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*";
MenuTitleFont = "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*";
MenuTextFont = "-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*";
IconTitleFont = "-*-helvetica-medium-r-normal-*-8-*-*-*-*-*-*-*";
DisplayFont = "-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*";
HighlightColor = "rgb:81/85/91";
HighlightTextColor = black;
ClipTitleColor = black;
CClipTitleColor = "rgb:61/61/61";
FTitleColor = white;
PTitleColor = white;
UTitleColor = gray20;
FTitleBack = (
mdgradient,
"rgb:20/20/70",
"rgb:20/20/70",
"rgb:05/05/60",
"rgb:05/05/40",
"rgb:05/05/25"
);
PTitleBack = (mdgradient, "rgb:80/80/80", "rgb:50/50/50", "rgb:40/40/40");
UTitleBack = (
mdgradient,
"rgb:90/90/90",
"rgb:a7/a7/b7",
"rgb:90/90/99",
"rgb:51/55/61"
);
MenuTitleColor = white;
MenuTextColor = black;
MenuDisabledColor = gray40;
MenuTitleBack = (
mdgradient,
"rgb:20/20/70",
"rgb:20/20/70",
"rgb:05/05/60",
"rgb:05/05/40",
"rgb:05/05/25"
);
MenuTextBack = (hgradient, "rgb:a9/a9/b9", "rgb:61/65/71");
IconBack = (dgradient, "rgb:a7/a7/b7", "rgb:51/55/61");
IconTitleColor = white;
IconTitleBack = "rgb:20/20/55";
WorkspaceBack = (tpixmap, BlueImage2.jpeg, "rgb:51/55/61");
}
Binary file not shown.
+6 -6
View File
@@ -171,9 +171,9 @@
"工作區" END
"外觀" MENU
"¥DÃD" OPEN_MENU THEMES_DIR ~/GNUstep/Library/WindowMaker/Themes WITH setstyle
"­·®æ" OPEN_MENU STYLES_DIR ~/GNUstep/Library/WindowMaker/Styles WITH setstyle
"¹Ï¥Ü¶°" OPEN_MENU ICON_SETS_DIR ~/GNUstep/Library/WindowMaker/IconSets WITH seticons
"¥DÃD" OPEN_MENU THEMES_DIR $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle
"­·®æ" OPEN_MENU STYLES_DIR $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle
"¹Ï¥Ü¶°" OPEN_MENU ICON_SETS_DIR $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons
"背景" MENU
"實體色" MENU
"Black" WS_BACK '(solid, black)'
@@ -189,10 +189,10 @@
"Flag" WS_BACK '(mdgradient, green, red, white, green)'
"Sky" WS_BACK '(vgradient, blue4, white)'
"漸層色" END
"¹Ï¤ù" OPEN_MENU BACKGROUNDS_DIR ~/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"¹Ï¤ù" OPEN_MENU BACKGROUNDS_DIR $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t
"背景" END
"Àx¦s¥DÃD" EXEC getstyle -t ~/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Àx¦s¹Ï¥Ü¶°" EXEC geticonset ~/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"Àx¦s¥DÃD" EXEC getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/"%a(Theme name)"
"Àx¦s¹Ï¥Ü¶°" EXEC geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"%a(IconSet name)"
"外觀" END
"離開" MENU
+87 -28
View File
@@ -6,7 +6,7 @@ dnl
AC_DEFUN(WM_CHECK_LIB,
[
LDFLAGS_old="$LDFLAGS"
LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path"
LDFLAGS="$LDFLAGS $lib_search_path"
AC_CHECK_LIB([$1],[$2],yes=yes,no=no,[$3])
LDFLAGS="$LDFLAGS_old"
])
@@ -31,8 +31,10 @@ AC_DEFUN(WM_CHECK_REDCRAP_BUGS,
[
AC_MSG_CHECKING(for RedHat system)
wm_check_flag='no :)'
rh_is_redhat=no
if test -f /etc/redhat-release; then
wm_check_flag=yes
rh_is_redhat=yes
fi
AC_MSG_RESULT($wm_check_flag)
@@ -40,10 +42,7 @@ mins_found=no
bugs_found=no
if test "$wm_check_flag" = yes; then
echo
AC_MSG_WARN([it seems you are using a system packaged by RedHat.
I will now do some checks for RedHat specific bugs. If some check
fail, please read the INSTALL file regarding RedHat, resolve the
problem and retry to configure.])
AC_MSG_WARN([Red Hat system; checking for Red-Hat-specific bugs.])
echo
#
# Check old wmaker from RedHat
@@ -52,12 +51,10 @@ if test "[$1]" != "/usr/X11R6" -a "$prefix" != "/usr/X11"; then
AC_MSG_CHECKING(for multiple installed wmaker versions)
if test -f /usr/X11R6/bin/wmaker; then
AC_MSG_RESULT(uh oh)
AC_MSG_WARN([you seem to have an old version of Window Maker
installed at /usr/X11R6/bin. It is recommended that you uninstall
any previously installed packages of WindowMaker before installing
a new one.])
mins_found=yes
rh_old_wmaker=yes
else
rh_old_wmaker=no
AC_MSG_RESULT(no apparent problems)
fi
fi
@@ -84,19 +81,19 @@ fi
if test "[$2]" = "/usr/local/bin"; then
AC_MSG_CHECKING(if /usr/local/bin is in the search PATH)
wm_check_flag=no
rh_missing_usr_local_bin=yes
old_IFS="$IFS"
IFS=":"
for i in $PATH; do
if test "x$i" = "x/usr/local/bin"; then
wm_check_flag=yes
rh_missing_usr_local_bin=no
break;
fi
done
IFS="$old_IFS"
if test "$wm_check_flag" = no; then
AC_MSG_RESULT(uh oh)
AC_MSG_WARN([/usr/local/bin is not in the PATH environment variable.
Please resolve the problem.])
bugs_found=yes
else
AC_MSG_RESULT(no problem)
@@ -108,13 +105,13 @@ fi
#
if test "[$3]" = "/usr/local/lib"; then
wm_check_flag=yes
rh_missing_usr_local_lib=no
AC_MSG_CHECKING(if /usr/local/lib is in /etc/ld.so.conf)
test -z "`grep /usr/local/lib /etc/ld.so.conf`"
test "$?" -eq 0 && wm_check_flag=no
if test "$wm_check_flag" = no; then
AC_MSG_RESULT(uh oh)
AC_MSG_WARN([/usr/local/lib is not in the /etc/ld.so.conf file.
Please add it there.])
rh_missing_usr_local_lib=yes
bugs_found=yes
else
AC_MSG_RESULT(no problem)
@@ -124,20 +121,21 @@ fi
# Check for symbolic links
#
AC_MSG_CHECKING(for /usr/X11 symbolic link)
rh_missing_usr_x11=no
if test -d "/usr/X11"; then
AC_MSG_RESULT(found)
else
AC_MSG_RESULT(uh oh)
AC_MSG_WARN([Please create a symbolic link from /usr/X11R6 to /usr/X11.])
rh_missing_usr_x11=yes
mins_found=yes
fi
AC_MSG_CHECKING(for /usr/include/X11 symbolic link)
rh_missing_usr_include_x11=no
if test -d "/usr/include/X11"; then
AC_MSG_RESULT(found)
else
AC_MSG_RESULT(uh oh)
AC_MSG_WARN([Please create a symbolic link from /usr/X11R6/include/X11
to /usr/include/X11.])
rh_missing_usr_include_x11=yes
mins_found=yes
fi
@@ -145,30 +143,91 @@ fi
# Check for /lib/cpp
#
AC_MSG_CHECKING(for /lib/cpp)
rh_missing_lib_cpp=no
if test -f "/lib/cpp"; then
AC_MSG_RESULT(found)
else
AC_MSG_RESULT(uh oh)
AC_MSG_WARN([Please create a symbolic link from the cpp (C preprocessor)
program to /lib/cpp])
rh_missing_lib_cpp=yes
bugs_found=yes
fi
echo
fi
])
dnl
dnl WM_PRINT_REDCRAP_BUG_STATUS()
dnl
AC_DEFUN(WM_PRINT_REDCRAP_BUG_STATUS,
[
if test "$rh_is_redhat" = yes; then
if test "$mins_found" = yes -o "$bugs_found" = yes; then
echo
AC_MSG_WARN([It seems you are using a system packaged by Red Hat.
I have done some checks for Red-Hat-specific bugs, and I found some
problems. Please read the INSTALL file regarding Red Hat, resolve
the problems, and try to run configure again.
Here are the problems I found:
])
if test "x$rh_old_wmaker" = xyes; then
echo "Problem: Old version of Window Maker in /usr/X11R6/bin."
echo "Description: You seem to have an old version of Window Maker"
echo " installed in /usr/X11R6/bin. It is recommended"
echo " that you uninstall any previously installed"
echo " packages of WindowMaker before installing a new one."
echo
fi
if test "x$rh_missing_usr_local_bin" = xyes; then
echo "Problem: PATH is missing /usr/local/bin."
echo "Description: Your PATH environment variable does not appear to"
echo " contain the directory /usr/local/bin. Please add it."
echo
fi
if test "x$rh_missing_usr_local_lib" = xyes; then
echo "Problem: /etc/ld.so.conf missing /usr/local/lib"
echo "Description: Your /etc/ld.so.conf file does not appear to contain"
echo " the directory /usr/local/lib. Please add it."
echo
fi
if test "x$rh_missing_usr_x11" = xyes; then
echo "Problem: Missing /usr/X11 symbolic link."
echo "Description: Your system is missing a symbolic link from"
echo " /usr/X11R6 to /usr/X11. Please create one."
echo
fi
if test "x$rh_missing_usr_include_x11" = xyes; then
echo "Problem: Missing /usr/include/X11 symbolic link."
echo "Description: Your system is missing a symbolic link from"
echo " /usr/X11R6/include/X11 to /usr/include/X11."
echo " Please create one."
echo
fi
if test "x$rh_missing_lib_cpp" = xyes; then
echo "Problem: Missing /lib/cpp symbolic link."
echo "Description: Your system is missing a symbolic link from the"
echo " cpp (C preprocessor) program to /lib/cpp."
echo " Please create one."
echo
fi
if test "x$bugs_found" = xyes; then
AC_MSG_ERROR([Some bugs that can potentially cause problems during
installation/execution were found. Please correct these problems
and retry later.])
AC_MSG_ERROR([One or more of the problems above can potentially
cause Window Maker not to install or run properly. Please resolve
the problems and try to run configure again.])
exit 1
elif test "x$mins_found" = xyes; then
AC_MSG_WARN([Some minor problems that might or might not cause
problems were found. If you have any problems during
installation/execution, please resolve the pointed problems and try
to reinstall.])
echo "Press <Return> to continue."
read blabla
AC_MSG_WARN([The problems above may or may not cause Window Maker
not to install or run properly. If you have any problems during
installation or execution, please resolve the problems and try to
install Window Maker again.])
echo
fi
else
echo
echo "None of the RedHat problems known to this script were found."
echo "You appear to have a system packaged by Red Hat, but I could"
echo "not find any Red-Hat-specific problems that I know about."
echo
fi
fi
Vendored
+87 -28
View File
@@ -18,7 +18,7 @@ dnl
AC_DEFUN(WM_CHECK_LIB,
[
LDFLAGS_old="$LDFLAGS"
LDFLAGS="-DBEGIN $LDFLAGS -DEND $lib_search_path"
LDFLAGS="$LDFLAGS $lib_search_path"
AC_CHECK_LIB([$1],[$2],yes=yes,no=no,[$3])
LDFLAGS="$LDFLAGS_old"
])
@@ -43,8 +43,10 @@ AC_DEFUN(WM_CHECK_REDCRAP_BUGS,
[
AC_MSG_CHECKING(for RedHat system)
wm_check_flag='no :)'
rh_is_redhat=no
if test -f /etc/redhat-release; then
wm_check_flag=yes
rh_is_redhat=yes
fi
AC_MSG_RESULT($wm_check_flag)
@@ -52,10 +54,7 @@ mins_found=no
bugs_found=no
if test "$wm_check_flag" = yes; then
echo
AC_MSG_WARN([it seems you are using a system packaged by RedHat.
I will now do some checks for RedHat specific bugs. If some check
fail, please read the INSTALL file regarding RedHat, resolve the
problem and retry to configure.])
AC_MSG_WARN([Red Hat system; checking for Red-Hat-specific bugs.])
echo
#
# Check old wmaker from RedHat
@@ -64,12 +63,10 @@ if test "[$1]" != "/usr/X11R6" -a "$prefix" != "/usr/X11"; then
AC_MSG_CHECKING(for multiple installed wmaker versions)
if test -f /usr/X11R6/bin/wmaker; then
AC_MSG_RESULT(uh oh)
AC_MSG_WARN([you seem to have an old version of Window Maker
installed at /usr/X11R6/bin. It is recommended that you uninstall
any previously installed packages of WindowMaker before installing
a new one.])
mins_found=yes
rh_old_wmaker=yes
else
rh_old_wmaker=no
AC_MSG_RESULT(no apparent problems)
fi
fi
@@ -96,19 +93,19 @@ fi
if test "[$2]" = "/usr/local/bin"; then
AC_MSG_CHECKING(if /usr/local/bin is in the search PATH)
wm_check_flag=no
rh_missing_usr_local_bin=yes
old_IFS="$IFS"
IFS=":"
for i in $PATH; do
if test "x$i" = "x/usr/local/bin"; then
wm_check_flag=yes
rh_missing_usr_local_bin=no
break;
fi
done
IFS="$old_IFS"
if test "$wm_check_flag" = no; then
AC_MSG_RESULT(uh oh)
AC_MSG_WARN([/usr/local/bin is not in the PATH environment variable.
Please resolve the problem.])
bugs_found=yes
else
AC_MSG_RESULT(no problem)
@@ -120,13 +117,13 @@ fi
#
if test "[$3]" = "/usr/local/lib"; then
wm_check_flag=yes
rh_missing_usr_local_lib=no
AC_MSG_CHECKING(if /usr/local/lib is in /etc/ld.so.conf)
test -z "`grep /usr/local/lib /etc/ld.so.conf`"
test "$?" -eq 0 && wm_check_flag=no
if test "$wm_check_flag" = no; then
AC_MSG_RESULT(uh oh)
AC_MSG_WARN([/usr/local/lib is not in the /etc/ld.so.conf file.
Please add it there.])
rh_missing_usr_local_lib=yes
bugs_found=yes
else
AC_MSG_RESULT(no problem)
@@ -136,20 +133,21 @@ fi
# Check for symbolic links
#
AC_MSG_CHECKING(for /usr/X11 symbolic link)
rh_missing_usr_x11=no
if test -d "/usr/X11"; then
AC_MSG_RESULT(found)
else
AC_MSG_RESULT(uh oh)
AC_MSG_WARN([Please create a symbolic link from /usr/X11R6 to /usr/X11.])
rh_missing_usr_x11=yes
mins_found=yes
fi
AC_MSG_CHECKING(for /usr/include/X11 symbolic link)
rh_missing_usr_include_x11=no
if test -d "/usr/include/X11"; then
AC_MSG_RESULT(found)
else
AC_MSG_RESULT(uh oh)
AC_MSG_WARN([Please create a symbolic link from /usr/X11R6/include/X11
to /usr/include/X11.])
rh_missing_usr_include_x11=yes
mins_found=yes
fi
@@ -157,30 +155,91 @@ fi
# Check for /lib/cpp
#
AC_MSG_CHECKING(for /lib/cpp)
rh_missing_lib_cpp=no
if test -f "/lib/cpp"; then
AC_MSG_RESULT(found)
else
AC_MSG_RESULT(uh oh)
AC_MSG_WARN([Please create a symbolic link from the cpp (C preprocessor)
program to /lib/cpp])
rh_missing_lib_cpp=yes
bugs_found=yes
fi
echo
fi
])
dnl
dnl WM_PRINT_REDCRAP_BUG_STATUS()
dnl
AC_DEFUN(WM_PRINT_REDCRAP_BUG_STATUS,
[
if test "$rh_is_redhat" = yes; then
if test "$mins_found" = yes -o "$bugs_found" = yes; then
echo
AC_MSG_WARN([It seems you are using a system packaged by Red Hat.
I have done some checks for Red-Hat-specific bugs, and I found some
problems. Please read the INSTALL file regarding Red Hat, resolve
the problems, and try to run configure again.
Here are the problems I found:
])
if test "x$rh_old_wmaker" = xyes; then
echo "Problem: Old version of Window Maker in /usr/X11R6/bin."
echo "Description: You seem to have an old version of Window Maker"
echo " installed in /usr/X11R6/bin. It is recommended"
echo " that you uninstall any previously installed"
echo " packages of WindowMaker before installing a new one."
echo
fi
if test "x$rh_missing_usr_local_bin" = xyes; then
echo "Problem: PATH is missing /usr/local/bin."
echo "Description: Your PATH environment variable does not appear to"
echo " contain the directory /usr/local/bin. Please add it."
echo
fi
if test "x$rh_missing_usr_local_lib" = xyes; then
echo "Problem: /etc/ld.so.conf missing /usr/local/lib"
echo "Description: Your /etc/ld.so.conf file does not appear to contain"
echo " the directory /usr/local/lib. Please add it."
echo
fi
if test "x$rh_missing_usr_x11" = xyes; then
echo "Problem: Missing /usr/X11 symbolic link."
echo "Description: Your system is missing a symbolic link from"
echo " /usr/X11R6 to /usr/X11. Please create one."
echo
fi
if test "x$rh_missing_usr_include_x11" = xyes; then
echo "Problem: Missing /usr/include/X11 symbolic link."
echo "Description: Your system is missing a symbolic link from"
echo " /usr/X11R6/include/X11 to /usr/include/X11."
echo " Please create one."
echo
fi
if test "x$rh_missing_lib_cpp" = xyes; then
echo "Problem: Missing /lib/cpp symbolic link."
echo "Description: Your system is missing a symbolic link from the"
echo " cpp (C preprocessor) program to /lib/cpp."
echo " Please create one."
echo
fi
if test "x$bugs_found" = xyes; then
AC_MSG_ERROR([Some bugs that can potentially cause problems during
installation/execution were found. Please correct these problems
and retry later.])
AC_MSG_ERROR([One or more of the problems above can potentially
cause Window Maker not to install or run properly. Please resolve
the problems and try to run configure again.])
exit 1
elif test "x$mins_found" = xyes; then
AC_MSG_WARN([Some minor problems that might or might not cause
problems were found. If you have any problems during
installation/execution, please resolve the pointed problems and try
to reinstall.])
echo "Press <Return> to continue."
read blabla
AC_MSG_WARN([The problems above may or may not cause Window Maker
not to install or run properly. If you have any problems during
installation or execution, please resolve the problems and try to
install Window Maker again.])
echo
fi
else
echo
echo "None of the RedHat problems known to this script were found."
echo "You appear to have a system packaged by Red Hat, but I could"
echo "not find any Red-Hat-specific problems that I know about."
echo
fi
fi
Vendored
+261 -258
View File
File diff suppressed because it is too large Load Diff
+7 -13
View File
@@ -10,7 +10,7 @@ AC_INIT(src/WindowMaker.h)
AM_INIT_AUTOMAKE(WindowMaker, 0.51.1)
AM_INIT_AUTOMAKE(WindowMaker, 0.51.2)
AM_PROG_LIBTOOL
@@ -100,7 +100,7 @@ AC_CHECK_FUNCS(gethostname select poll strerror strncasecmp setpgid atexit)
if test "x$CPP_PATH" = x; then
AC_PATH_PROG(CPP_PATH, cpp, notfound,
/lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib:$PATH)
$PATH:/lib:/usr/bin:/bin:/usr/lib:/usr/ccs/lib)
fi
dnl
@@ -589,15 +589,6 @@ dnl
fi
fi
#
# why the heck does debian name libtiff this way!?
#
if test "x$my_libname" = x; then
WM_CHECK_LIB(tiff3g, TIFFGetVersion, [-lm])
if test "x$ac_cv_lib_tiff3g_TIFFGetVersion" = xyes; then
my_libname="-ltiff3g"
fi
fi
if test "x$my_libname" != x; then
WM_CHECK_HEADER(tiffio.h)
@@ -669,8 +660,8 @@ AC_DEFINE_UNQUOTED(PIXMAPDIR, "$pixmapdir")
pkgdatadir=`eval echo $datadir`
AC_DEFINE_UNQUOTED(PKGDATADIR, "$pkgdatadir/WindowMaker")
sysconfdir=`eval echo $sysconfdir`
AC_DEFINE_UNQUOTED(SYSCONFDIR, "$sysconfdir/WindowMaker")
_sysconfdir=`eval echo $sysconfdir`
AC_DEFINE_UNQUOTED(SYSCONFDIR, "$_sysconfdir/WindowMaker")
dnl Support for GNUSTEP_LOCAL_ROOT, for WPrefs.app
@@ -742,7 +733,9 @@ AC_OUTPUT(Makefile po/Makefile util/Makefile test/Makefile wmlib/Makefile \
WindowMaker/Pixmaps/Makefile WindowMaker/Styles/Makefile \
WindowMaker/Themes/Makefile \
WindowMaker/Themes/Night.themed/Makefile \
WindowMaker/Themes/LeetWM.themed/Makefile \
WindowMaker/Themes/Checker.themed/Makefile \
WindowMaker/Themes/STEP2000.themed/Makefile \
WPrefs.app/Makefile WPrefs.app/tiff/Makefile WPrefs.app/xpm/Makefile \
WPrefs.app/po/Makefile )
@@ -831,6 +824,7 @@ if test "x$MOFILES" != "x"; then
echo "Installation path of translated messages: $NLSDIR" | sed -e 's|\$(prefix)|'"$prefix|"
fi
WM_PRINT_REDCRAP_BUG_STATUS
if test "x$ac_cv_header_jpeglib_h" != xyes; then
echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING"
+1 -1
View File
@@ -103,7 +103,7 @@ DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
+1 -1
View File
@@ -1,4 +1,4 @@
nlsdir = $(DESTDIR)$(NLSDIR)
nlsdir = $(NLSDIR)
CATALOGS = @MOFILES@
+2 -2
View File
@@ -87,7 +87,7 @@ XLIBS = @XLIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
wprefsdir = @wprefsdir@
nlsdir = $(DESTDIR)$(NLSDIR)
nlsdir = $(NLSDIR)
CATALOGS = @MOFILES@
@@ -113,7 +113,7 @@ DIST_COMMON = README Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
+1 -1
View File
@@ -139,7 +139,7 @@ wconfig.h.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
SOURCES = $(wmaker_SOURCES)
OBJECTS = $(wmaker_OBJECTS)
+9
View File
@@ -200,6 +200,14 @@ typedef enum {
#define WSTATE_NEED_RESTART 2
#define WSTATE_EXITING 3
#define WSTATE_RESTARTING 4
#define WSTATE_MODAL 5
#define WCHECK_STATE(state) (state == WProgramState)
#define WCHANGE_STATE(nstate) \
if (WProgramState == WSTATE_NORMAL\
|| nstate != WSTATE_MODAL)\
WProgramState = (nstate)
typedef struct {
@@ -352,6 +360,7 @@ typedef struct WPreferences {
extern Display *dpy;
extern char *ProgName;
extern unsigned int ValidModMask;
extern char WProgramState;
/****** Global Functions ******/
extern void wAbort(Bool dumpCore);
+16 -2
View File
@@ -416,6 +416,14 @@ wMaximizeWindow(WWindow *wwin, int directions)
if (WFLAGP(wwin, no_resizable))
return;
if (WFLAGP(wwin, full_maximize)) {
usableArea.x1 = 0;
usableArea.y1 = 0;
usableArea.x2 = wwin->screen_ptr->scr_width;
usableArea.y2 = wwin->screen_ptr->scr_height;
}
if (wwin->flags.shaded) {
wwin->flags.skip_next_animation = 1;
wUnshadeWindow(wwin);
@@ -446,6 +454,8 @@ wMaximizeWindow(WWindow *wwin, int directions)
new_height = (usableArea.y2-usableArea.y1)-FRAME_BORDER_WIDTH*2;
new_y = usableArea.y1;
if (WFLAGP(wwin, full_maximize))
new_y -= wwin->frame->top_width;
} else {
@@ -453,7 +463,10 @@ wMaximizeWindow(WWindow *wwin, int directions)
new_height = wwin->frame->core->height;
}
if (!WFLAGP(wwin, full_maximize)) {
new_height -= wwin->frame->top_width+wwin->frame->bottom_width;
}
wWindowConstrainSize(wwin, &new_width, &new_height);
wWindowConfigure(wwin, new_x, new_y, new_width, new_height);
@@ -1012,10 +1025,11 @@ wDeiconifyWindow(WWindow *wwin)
if (!wwin->flags.miniaturized)
return;
if (wwin->transient_for != None) {
if (wwin->transient_for != None
&& wwin->transient_for != wwin->screen_ptr->root_win) {
WWindow *owner = recursiveTransientFor(wwin);
if (wwin->flags.miniaturized) {
if (owner && owner->flags.miniaturized) {
wDeiconifyWindow(owner);
wSetFocusTo(wwin->screen_ptr, wwin);
wRaiseFrame(wwin->frame->core);
+18 -3
View File
@@ -525,17 +525,32 @@ static void
killCallback(WMenu *menu, WMenuEntry *entry)
{
WApplication *wapp = (WApplication*)entry->clientdata;
char *buffer;
if (!WCHECK_STATE(WSTATE_NORMAL))
return;
WCHANGE_STATE(WSTATE_MODAL);
assert(entry->clientdata!=NULL);
buffer = wstrappend(wapp->app_icon ? wapp->app_icon->wm_class : NULL,
_(" will be forcibly closed.\n"
"Any unsaved changes will be lost.\n"
"Please confirm."));
wretain(wapp->main_window_desc);
if (wPreferences.dont_confirm_kill
|| wMessageDialog(menu->frame->screen_ptr, _("Kill Application"),
_("This will kill the application.\nAny unsaved changes will be lost.\nPlease confirm."),
_("Yes"), _("No"), NULL)==WAPRDefault) {
buffer, _("Yes"), _("No"), NULL)==WAPRDefault) {
if (!wapp->main_window_desc->flags.destroyed)
wClientKill(wapp->main_window_desc);
}
wrelease(wapp->main_window_desc);
free(buffer);
WCHANGE_STATE(WSTATE_NORMAL);
}
@@ -666,7 +681,7 @@ appIconMouseDown(WObjDescriptor *desc, XEvent *event)
int clickButton = event->xbutton.button;
Pixmap ghost = None;
if (aicon->editing)
if (aicon->editing || WCHECK_STATE(WSTATE_MODAL))
return;
if (IsDoubleClick(scr, event)) {
+3 -2
View File
@@ -288,6 +288,7 @@ void
wClientKill(WWindow *wwin)
{
XKillClient(dpy, wwin->client_win);
XFlush(dpy);
}
@@ -743,8 +744,8 @@ GetColormapWindows(WWindow *wwin)
wwin->cmap_windows = NULL;
wwin->cmap_window_no = 0;
if (XGetWMColormapWindows(dpy, wwin->client_win, &(wwin->cmap_windows),
&(wwin->cmap_window_no))==0
if (!XGetWMColormapWindows(dpy, wwin->client_win, &(wwin->cmap_windows),
&(wwin->cmap_window_no))
|| !wwin->cmap_windows) {
wwin->cmap_window_no = 0;
wwin->cmap_windows = NULL;
+2 -2
View File
@@ -41,7 +41,7 @@ wColormapInstallForWindow(WScreen *scr, WWindow *wwin)
int done = 0;
Window xwin = None;
if(wwin) {
if (wwin) {
xwin = wwin->client_win;
} else {
xwin = scr->root_win;
@@ -55,7 +55,7 @@ wColormapInstallForWindow(WScreen *scr, WWindow *wwin)
}
/* install colormap for all windows of the client */
if (wwin && wwin->cmap_window_no > 0) {
if (wwin && wwin->cmap_window_no > 0 && wwin->cmap_windows) {
for (i = wwin->cmap_window_no - 1; i >= 0; i--) {
Window w;
+2 -2
View File
@@ -51,7 +51,7 @@
/* #undef X_DISPLAY_MISSING */
/* define to the path to cpp */
#define CPP_PATH "/lib/cpp"
#define CPP_PATH "/usr/bin/cpp"
/* define if you want GNOME stuff support */
/* #undef GNOME_STUFF */
@@ -174,5 +174,5 @@
#define PACKAGE "WindowMaker"
/* Version number of package */
#define VERSION "0.51.1"
#define VERSION "0.51.2"
+3 -3
View File
@@ -452,7 +452,7 @@ wIconChooserDialog(WScreen *scr, char **file, char *instance, char *class)
panel->fileField = WMCreateTextField(panel->win);
WMResizeWidget(panel->fileField, 345, 20);
WMMoveWidget(panel->fileField, 95, 210);
WMSetTextFieldEnabled(panel->fileField, False);
WMSetTextFieldEditable(panel->fileField, False);
panel->okButton = WMCreateCommandButton(panel->win);
WMResizeWidget(panel->okButton, 80, 26);
@@ -614,10 +614,10 @@ destroyInfoPanel(WCoreWindow *foo, void *data, XEvent *event)
#endif /* SILLYNESS */
WMUnmapWidget(thePanel);
WMDestroyWidget(thePanel->win);
wUnmanageWindow(thePanel->wwin, False, False);
WMDestroyWidget(thePanel->win);
free(thePanel);
thePanel = NULL;
+16 -5
View File
@@ -80,7 +80,6 @@ extern void DestroyDockAppSettingsPanel();
extern void ShowDockAppSettingsPanel(WAppIcon *aicon);
extern Cursor wCursor[WCUR_LAST];
extern WPreferences wPreferences;
@@ -243,14 +242,21 @@ killCallback(WMenu *menu, WMenuEntry *entry)
WAppIconAppList *tapplist;
extern Atom _XA_WM_DELETE_WINDOW;
#else
char *buffer;
#endif
if (!WCHECK_STATE(WSTATE_NORMAL))
return;
assert(entry->clientdata!=NULL);
icon = (WAppIcon*)entry->clientdata;
icon->editing = 1;
WCHANGE_STATE(WSTATE_MODAL);
#ifdef REDUCE_APPICONS
/* Send a delete message to the main window of each application
* bound to this docked appicon. - cls
@@ -268,10 +274,14 @@ killCallback(WMenu *menu, WMenuEntry *entry)
tapplist = tapplist->next;
}
#else
buffer = wstrappend(icon->wm_class,
_(" will be forcibly closed.\n"
"Any unsaved changes will be lost.\n"
"Please confirm."));
if (wPreferences.dont_confirm_kill
|| wMessageDialog(menu->frame->screen_ptr, _("Kill Application"),
_("This will kill the application.\nAny unsaved changes will be lost.\nPlease confirm."),
_("Yes"), _("No"), NULL)==WAPRDefault) {
buffer, _("Yes"), _("No"), NULL)==WAPRDefault) {
if (icon->icon && icon->icon->owner) {
wClientKill(icon->icon->owner);
}
@@ -279,7 +289,8 @@ killCallback(WMenu *menu, WMenuEntry *entry)
#endif /* !REDUCE_APPICONS */
icon->editing = 0;
}
WCHANGE_STATE(WSTATE_NORMAL);}
static LinkedList*
@@ -3766,7 +3777,7 @@ iconMouseDown(WObjDescriptor *desc, XEvent *event)
WDock *dock = aicon->dock;
WScreen *scr = aicon->icon->core->screen_ptr;
if (aicon->editing)
if (aicon->editing || WCHECK_STATE(WSTATE_MODAL))
return;
scr->last_dock = dock;
+53 -22
View File
@@ -95,7 +95,6 @@ extern int wShapeEventBase;
#endif
/* special flags */
extern char WProgramState;
extern char WDelayedActionSet;
@@ -205,8 +204,8 @@ DispatchEvent(XEvent *event)
if (deathHandler)
handleDeadProcess(NULL);
if (WProgramState==WSTATE_NEED_EXIT) {
WProgramState = WSTATE_EXITING;
if (WCHECK_STATE(WSTATE_NEED_EXIT)) {
WCHANGE_STATE(WSTATE_EXITING);
/* received SIGTERM */
/*
* WMHandleEvent() can't be called from anything
@@ -215,8 +214,8 @@ DispatchEvent(XEvent *event)
*/
Shutdown(WSExitMode);
} else if (WProgramState == WSTATE_NEED_RESTART) {
WProgramState = WSTATE_RESTARTING;
} else if (WCHECK_STATE(WSTATE_NEED_RESTART)) {
WCHANGE_STATE(WSTATE_RESTARTING);
Shutdown(WSRestartPreparationMode);
/* received SIGHUP */
@@ -354,7 +353,7 @@ void
NotifyDeadProcess(pid_t pid, unsigned char status)
{
if (deadProcessPtr>=MAX_DEAD_PROCESSES-1) {
wwarning(_("stack overflow: too many dead processes"));
wwarning("stack overflow: too many dead processes");
return;
}
/* stack the process to be handled later,
@@ -502,21 +501,6 @@ handleMapRequest(XEvent *ev)
}
if (wwin) {
int state;
if (wwin->wm_hints && (wwin->wm_hints->flags & StateHint))
state = wwin->wm_hints->initial_state;
else
state = NormalState;
if (state == IconicState)
wwin->flags.miniaturized = 1;
if (state == WithdrawnState) {
wwin->flags.mapped = 0;
wClientSetState(wwin, WithdrawnState, None);
wUnmanageWindow(wwin, True, False);
} else {
wClientSetState(wwin, NormalState, None);
if (wwin->flags.maximized) {
wMaximizeWindow(wwin, wwin->flags.maximized);
@@ -541,7 +525,6 @@ handleMapRequest(XEvent *ev)
}
}
}
}
}
@@ -1701,6 +1684,7 @@ handleMotionNotify(XEvent *event)
{
WMenu *menu;
WScreen *scr = wScreenForRootWindow(event->xmotion.root);
WWindow *wwin;
if (wPreferences.scrollable_menus) {
if (event->xmotion.x_root <= 1 ||
@@ -1717,6 +1701,53 @@ handleMotionNotify(XEvent *event)
wMenuScroll(menu, event);
}
}
#if 0
if (event->xmotion.subwindow == None)
return;
if (scr->scrolledFMaximize != None) {
WWindow *twin;
twin = wWindowFor(scr->scrolledFMaximize);
if (twin && twin->frame_y ==) {
}
scr->scrolledFMaximize = NULL;
} else {
/* scroll full maximized window */
if (event->xmotion.y_root < 1
|| event->xmotion.y_root > scr->scr_height - 1) {
wwin = wWindowFor(event->xmotion.subwindow);
if (wwin && (wwin->flags.maximized & MAX_VERTICAL)
&& WFLAGP(wwin, full_maximize)
&& event->xmotion.x_root >= wwin->frame_x
&& event->xmotion.x_root <= wwin->frame_x + wwin->frame->core->width) {
if (!WFLAGP(wwin, no_titlebar)
&& wwin->frame_y <= - wwin->frame->top_width) {
wWindowMove(wwin, wwin->frame_x, 0);
wwin->flags.dragged_while_fmaximized = 0;
} else if (!WFLAGP(wwin, no_resizebar)
&& wwin->frame_y + wwin->frame->core->height >=
scr->scr_height + wwin->frame->bottom_width) {
int y = scr->scr_height + wwin->frame->bottom_width;
y = scr->scr_height - wwin->frame_y - wwin->frame->core->height;
wWindowMove(wwin, wwin->frame_x, y);
wwin->flags.dragged_while_fmaximized = 0;
}
}
}
#endif
}
+2 -1
View File
@@ -417,7 +417,6 @@ getnameforicon(WWindow *wwin)
len = strlen(prefix)+64+strlen(suffix);
path = wmalloc(len+1);
sprintf(path, "%s/.AppInfo", prefix);
free(prefix);
if (access(path, F_OK)!=0) {
if (mkdir(path, S_IRUSR|S_IWUSR|S_IXUSR)) {
@@ -811,6 +810,8 @@ miniwindowMouseDown(WObjDescriptor *desc, XEvent *event)
int grabbed=0;
int clickButton=event->xbutton.button;
if (WCHECK_STATE(WSTATE_MODAL))
return;
if (IsDoubleClick(icon->core->screen_ptr, event)) {
miniwindowDblClick(desc, event);
+1
View File
@@ -1559,6 +1559,7 @@ wKWMSendEventMessage(WWindow *wwin, WKWMEventMessage message)
if (wwin && (wwin->flags.internal_window
|| wwin->flags.kwm_hidden_for_modules
|| !wwin->flags.kwm_managed
|| WFLAGP(wwin, skip_window_list)))
return;
+17 -10
View File
@@ -581,8 +581,8 @@ typedef struct {
#define WTOP(w) (w)->frame_y
#define WLEFT(w) (w)->frame_x
#define WRIGHT(w) ((w)->frame_x + (int)(w)->frame->core->width)
#define WBOTTOM(w) ((w)->frame_y + (int)(w)->frame->core->height)
#define WRIGHT(w) ((w)->frame_x + (int)(w)->frame->core->width + FRAME_BORDER_WIDTH)
#define WBOTTOM(w) ((w)->frame_y + (int)(w)->frame->core->height + FRAME_BORDER_WIDTH)
static int
compareWTop(const void *a, const void *b)
@@ -749,6 +749,8 @@ updateMoveData(WWindow *wwin, MoveData *data)
tmp = scr->focused_window;
while (tmp) {
if (tmp != wwin && scr->current_workspace == tmp->frame->workspace
&& !tmp->flags.miniaturized
&& !tmp->flags.hidden
&& !tmp->flags.obscured) {
data->topList[data->count] = tmp;
data->leftList[data->count] = tmp;
@@ -823,15 +825,14 @@ initMoveData(WWindow *wwin, MoveData *data)
tmp != NULL;
tmp = tmp->prev, i++);
if (i <= 1)
return;
if (i > 1) {
data->topList = wmalloc(sizeof(WWindow*) * i);
data->leftList = wmalloc(sizeof(WWindow*) * i);
data->rightList = wmalloc(sizeof(WWindow*) * i);
data->bottomList = wmalloc(sizeof(WWindow*) * i);
updateMoveData(wwin, data);
}
data->realX = wwin->frame_x;
data->realY = wwin->frame_y;
@@ -1075,13 +1076,21 @@ updateWindowPosition(WWindow *wwin, MoveData *data, Bool doResistance,
drawFrames(wwin, scr->selected_windows,
data->realX - wwin->frame_x,
data->realY - wwin->frame_y);
}
if (!scr->selected_windows
&& wPreferences.move_display == WDIS_FRAME_CENTER) {
moveGeometryDisplayCentered(scr, newX + data->winWidth/2,
newY + data->winHeight/2);
}
if (!opaqueMove) {
/* draw frames */
drawFrames(wwin, scr->selected_windows,
newX - wwin->frame_x,
newY - wwin->frame_y);
}
}
if (!scr->selected_windows) {
@@ -1089,13 +1098,11 @@ updateWindowPosition(WWindow *wwin, MoveData *data, Bool doResistance,
showPosition(wwin, data->realX, data->realY);
} else if (wPreferences.move_display == WDIS_FRAME_CENTER) {
moveGeometryDisplayCentered(scr, newX + data->winWidth/2,
newY + data->winHeight/2);
}
showPosition(wwin, newX, newY);
}
}
/* recalc relative window position */
if (doResistance && (data->realX != newX || data->realY != newY)) {
+19
View File
@@ -291,6 +291,25 @@ PropWriteGNUstepWMAttr(Window window, GNUstepWMAttributes *attr)
}
int
PropGetWindowState(Window window)
{
long *data;
long state;
data = (long*)PropGetCheckProperty(window, _XA_WM_STATE, _XA_WM_STATE,
32, 1, NULL);
if (!data)
return -1;
state = *data;
XFree(data);
return state;
}
void
PropCleanUp(Window root)
{
+1
View File
@@ -28,6 +28,7 @@
unsigned char* PropGetCheckProperty(Window window, Atom hint, Atom type,
int format, int count, int *retCount);
int PropGetWindowState(Window window);
int PropGetNormalHints(Window window, XSizeHints *size_hints, int *pre_iccm);
void PropGetProtocols(Window window, WProtocols *prots);
+1 -1
View File
@@ -501,7 +501,7 @@ createInternalWindows(WScreen *scr)
XSelectInput(dpy, scr->no_focus_win, KeyPressMask|KeyReleaseMask);
XMapWindow(dpy, scr->no_focus_win);
XSetInputFocus (dpy, scr->no_focus_win, RevertToParent, CurrentTime);
XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, CurrentTime);
/* shadow window for dock buttons */
vmask = CWBorderPixel|CWBackPixmap|CWBackPixel|CWCursor|CWSaveUnder|CWOverrideRedirect;
+4
View File
@@ -266,6 +266,10 @@ typedef struct _WScreen {
Window autoRaiseWindow; /* window that is scheduled to be
* raised */
Window scrolledFMaximize; /* full maximized window which was
scrolled down for titlebar access */
/* for window shortcuts */
struct WWindow *shortcutWindow[MAX_WINDOW_SHORTCUTS];
-5
View File
@@ -870,8 +870,6 @@ smSaveYourselfPhase2Proc(SmcConn smc_conn, SmPointer client_data)
statefile = malloc(strlen(prefix)+64);
if (!statefile) {
if (gsPrefix)
free(prefix);
wwarning(_("out of memory while saving session state"));
goto fail;
}
@@ -887,9 +885,6 @@ smSaveYourselfPhase2Proc(SmcConn smc_conn, SmPointer client_data)
i++;
} while (access(F_OK, statefile)!=-1);
if (gsPrefix)
free(prefix);
/* save the states of all windows we're managing */
state = PLMakeArrayFromElements(NULL, NULL);
+4 -1
View File
@@ -187,9 +187,12 @@ RestoreDesktop(WScreen *scr)
next = core->stacking->above;
if (core->descriptor.parent_type==WCLASS_WINDOW) {
Window window;
wwin = core->descriptor.parent;
wwin->flags.mapped=1;
window = wwin->client_win;
wUnmanageWindow(wwin, !wwin->flags.internal_window, False);
XMapWindow(dpy, window);
}
core = next;
}
+13 -62
View File
@@ -54,6 +54,7 @@
#include "framewin.h"
#include "session.h"
#include "defaults.h"
#include "properties.h"
#include "xutil.h"
@@ -139,7 +140,6 @@ extern Atom _XDE_URLTYPE;
extern Cursor wCursor[WCUR_LAST];
/* special flags */
extern char WProgramState;
extern char WDelayedActionSet;
/***** Local *****/
@@ -261,7 +261,7 @@ handleSig(int sig)
wwarning(_("got signal %i - restarting\n"), sig);
#endif
WProgramState = WSTATE_NEED_RESTART;
WCHANGE_STATE(WSTATE_NEED_RESTART);
/* setup idle handler, so that this will be handled when
* the select() is returned becaused of the signal, even if
@@ -278,7 +278,7 @@ handleSig(int sig)
wwarning(_("got signal %i - exiting...\n"), sig);
#endif
WProgramState = WSTATE_NEED_EXIT;
WCHANGE_STATE(WSTATE_NEED_EXIT);
if (!WDelayedActionSet) {
WDelayedActionSet = 1;
@@ -864,27 +864,6 @@ StartUp(Bool defaultScreenOnly)
static int
getState(Window window)
{
Atom type;
int form;
unsigned long nitems, bytes_rem;
unsigned char *data;
long ret;
if (XGetWindowProperty(dpy, window, _XA_WM_STATE, 0, 3, False,
_XA_WM_STATE, &type,&form,&nitems,&bytes_rem,
&data)==Success) {
if (data != NULL) {
ret = *(long*)data;
free(data);
return ret;
}
}
return -1;
}
static Bool
windowInList(Window window, Window *list, int count)
@@ -913,11 +892,8 @@ manageAllWindows(WScreen *scr)
Window root, parent;
Window *children;
unsigned int nchildren;
XWindowAttributes wattribs;
unsigned int i, j;
int state;
WWindow *wwin;
XWMHints *wmhints;
XGrabServer(dpy);
XQueryTree(dpy, scr->root_win, &root, &parent, &children, &nchildren);
@@ -926,6 +902,8 @@ manageAllWindows(WScreen *scr)
/* first remove all icon windows */
for (i = 0; i < nchildren; i++) {
XWMHints *wmhints;
if (children[i]==None)
continue;
@@ -944,51 +922,30 @@ manageAllWindows(WScreen *scr)
XFree(wmhints);
}
}
/* map all windows without OverrideRedirect */
for (i = 0; i < nchildren; i++) {
if (children[i] == None)
continue;
#ifdef KWM_HINTS
wKWMCheckModule(scr, children[i]);
#endif
XGetWindowAttributes(dpy, children[i], &wattribs);
state = getState(children[i]);
if (!wattribs.override_redirect
&& (state>=0 || wattribs.map_state!=IsUnmapped)) {
if (state==WithdrawnState) {
/* move the window far away so that it doesn't flash */
XMoveWindow(dpy, children[i], scr->scr_width+10,
scr->scr_height+10);
}
wwin = wManageWindow(scr, children[i]);
if (wwin) {
if (state == WithdrawnState) {
wwin->flags.mapped = 0;
wClientSetState(wwin, WithdrawnState, None);
XSelectInput(dpy, wwin->client_win, NoEventMask);
XRemoveFromSaveSet(dpy, wwin->client_win);
wUnmanageWindow(wwin, True, False);
} else {
/* apply states got from WSavedState */
/* shaded + minimized is not restored correctly */
if (wwin->flags.shaded) {
wwin->flags.shaded = 0;
wShadeWindow(wwin);
}
if (wwin->wm_hints &&
(wwin->wm_hints->flags & StateHint) && state < 0)
state = wwin->wm_hints->initial_state;
if ((state == IconicState || wwin->flags.miniaturized)
if (wwin->flags.miniaturized
&& (wwin->transient_for == None
|| wwin->transient_for == wwin->client_win
|| !windowInList(wwin->transient_for,
children, nchildren))) {
|| wwin->transient_for == scr->root_win
|| !windowInList(wwin->transient_for, children,
nchildren))) {
wwin->flags.skip_next_animation = 1;
wwin->flags.miniaturized = 0;
wIconifyWindow(wwin);
} else {
@@ -996,12 +953,6 @@ manageAllWindows(WScreen *scr)
}
}
}
if (state == WithdrawnState) {
/* move the window back to it's old position */
XMoveWindow(dpy, children[i], wattribs.x, wattribs.y);
}
}
}
XUngrabServer(dpy);
/* hide apps */
+1 -1
View File
@@ -57,7 +57,7 @@
*/
#define USECPP
/* #define CPP_PATH /lib/cpp */
/* #define CPP_PATH /usr/bin/cpp */
/*
* support for OffiX DND drag and drop in the Dock
+5
View File
@@ -82,6 +82,7 @@ static proplist_t AStartMaximized;
static proplist_t AStartHidden; /* app */
static proplist_t ADontSaveSession; /* app */
static proplist_t AEmulateAppIcon;
static proplist_t AFullMaximize;
static proplist_t AStartWorkspace;
@@ -117,6 +118,7 @@ init_wdefaults(WScreen *scr)
AStartMaximized = PLMakeString("StartMaximized");
ADontSaveSession = PLMakeString("DontSaveSession");
AEmulateAppIcon = PLMakeString("EmulateAppIcon");
AFullMaximize = PLMakeString("FullMaximize");
AStartWorkspace = PLMakeString("StartWorkspace");
@@ -299,6 +301,9 @@ wDefaultFillAttributes(WScreen *scr, char *instance, char *class,
value = get_value(dw, dc, dn, da, AEmulateAppIcon, No, useGlobalDefault);
APPLY_VAL(value, emulate_appicon, AEmulateAppIcon);
value = get_value(dw, dc, dn, da, AFullMaximize, No, useGlobalDefault);
APPLY_VAL(value, emulate_appicon, AFullMaximize);
/* clean up */
PLSetStringCmpHook(StringCompareHook);
}
+107 -54
View File
@@ -107,8 +107,7 @@ static FocusMode getFocusMode(WWindow *wwin);
static int getSavedState(Window window, WSavedState **state);
static void setupGNUstepHints(WWindow *wwin,
GNUstepWMAttributes *gs_hints);
static void setupGNUstepHints(WWindow *wwin, GNUstepWMAttributes *gs_hints);
/* event handlers */
@@ -226,39 +225,38 @@ static void
setupGNUstepHints(WWindow *wwin, GNUstepWMAttributes *gs_hints)
{
if (gs_hints->flags & GSWindowStyleAttr) {
WSETUFLAG(wwin, no_titlebar,
((gs_hints->window_style & WMTitledWindowMask)?0:1));
wwin->client_flags.no_titlebar =
((gs_hints->window_style & WMTitledWindowMask)?0:1);
WSETUFLAG(wwin, no_close_button,
((gs_hints->window_style & WMClosableWindowMask)?0:1));
wwin->client_flags.no_close_button =
((gs_hints->window_style & WMClosableWindowMask)?0:1);
WSETUFLAG(wwin, no_closable,
((gs_hints->window_style & WMClosableWindowMask)?0:1));
wwin->client_flags.no_closable =
((gs_hints->window_style & WMClosableWindowMask)?0:1);
WSETUFLAG(wwin, no_miniaturize_button,
((gs_hints->window_style & WMMiniaturizableWindowMask)?0:1));
wwin->client_flags.no_miniaturize_button =
((gs_hints->window_style & WMMiniaturizableWindowMask)?0:1);
WSETUFLAG(wwin, no_miniaturizable,
((gs_hints->window_style & WMMiniaturizableWindowMask)?0:1));
wwin->client_flags.no_miniaturizable =
((gs_hints->window_style & WMMiniaturizableWindowMask)?0:1);
WSETUFLAG(wwin, no_resizebar,
((gs_hints->window_style & WMResizableWindowMask)?0:1));
wwin->client_flags.no_resizebar =
((gs_hints->window_style & WMResizableWindowMask)?0:1);
WSETUFLAG(wwin, no_resizable,
((gs_hints->window_style & WMResizableWindowMask)?0:1));
wwin->client_flags.no_resizable =
((gs_hints->window_style & WMResizableWindowMask)?0:1);
} else {
/* setup the defaults */
WSETUFLAG(wwin, no_titlebar, 0);
WSETUFLAG(wwin, no_closable, 0);
WSETUFLAG(wwin, no_miniaturizable, 0);
WSETUFLAG(wwin, no_resizable, 0);
WSETUFLAG(wwin, no_close_button, 0);
WSETUFLAG(wwin, no_miniaturize_button, 0);
WSETUFLAG(wwin, no_resizebar, 0);
wwin->client_flags.no_titlebar = 0;
wwin->client_flags.no_closable = 0;
wwin->client_flags.no_miniaturizable = 0;
wwin->client_flags.no_resizable = 0;
wwin->client_flags.no_close_button = 0;
wwin->client_flags.no_miniaturize_button = 0;
wwin->client_flags.no_resizebar = 0;
}
if (gs_hints->extra_flags & GSNoApplicationIconFlag) {
WSETUFLAG(wwin, no_appicon, 1);
wwin->client_flags.no_appicon = 1;
}
}
@@ -425,7 +423,7 @@ wWindowSetupInitialAttributes(WWindow *wwin, int *level, int *workspace)
Bool
wWindowCanReceiveFocus(WWindow *wwin)
{
if (!wwin->flags.mapped && (!wwin->flags.shaded || wwin->flags.hidden))
if (!wwin->flags.mapped && !wwin->flags.shaded)
return False;
if (WFLAGP(wwin, no_focusable) || wwin->flags.miniaturized)
return False;
@@ -469,6 +467,9 @@ wWindowObscuresWindow(WWindow *wwin, WWindow *obscured)
* the window decoration attributes and others. User preferences
* for the window are used if available, to configure window
* decorations and some behaviour.
* If in startup, windows that are override redirect,
* unmapped and never were managed and are Withdrawn are not
* managed.
*
* Returns:
* the new window descriptor
@@ -494,12 +495,14 @@ wManageWindow(WScreen *scr, Window window)
WWindowState *win_state;
WWindow *transientOwner = NULL;
int window_level;
int wm_state;
int foo;
int workspace = -1;
char *title;
Bool withdraw = False;
/* mutex. */
XGrabServer(dpy);
// XGrabServer(dpy);
XSync(dpy, False);
/* make sure the window is still there */
if (!XGetWindowAttributes(dpy, window, &wattribs)) {
@@ -507,6 +510,20 @@ wManageWindow(WScreen *scr, Window window)
return NULL;
}
/* if it's an override-redirect, ignore it */
if (wattribs.override_redirect) {
XUngrabServer(dpy);
return NULL;
}
wm_state = PropGetWindowState(window);
/* if it's startup and the window is unmapped, don't manage it */
if (scr->flags.startup && wm_state < 0 && wattribs.map_state==IsUnmapped) {
XUngrabServer(dpy);
return NULL;
}
if (!wFetchName(dpy, window, &title)) {
title = NULL;
}
@@ -548,7 +565,6 @@ wManageWindow(WScreen *scr, Window window)
*
*--------------------------------------------------
*/
wwin->wm_hints = XGetWMHints(dpy, window);
PropGetWMClass(window, &wwin->wm_class, &wwin->wm_instance);
/* setup descriptor */
@@ -574,17 +590,19 @@ wManageWindow(WScreen *scr, Window window)
if (wwin->client_leader!=None)
wwin->main_window = wwin->client_leader;
if (wwin->wm_hints)
XFree(wwin->wm_hints);
wwin->wm_hints = XGetWMHints(dpy, window);
if (wwin->wm_hints) {
if ((wwin->wm_hints->flags&StateHint)
&& (wwin->wm_hints->initial_state == IconicState)) {
if (wwin->wm_hints->flags & StateHint) {
if (wwin->wm_hints->initial_state == IconicState) {
wwin->flags.miniaturized = 1;
/* don't do iconify animation */
wwin->flags.skip_next_animation = 1;
} else if (wwin->wm_hints->initial_state == WithdrawnState) {
withdraw = True;
}
}
if (wwin->wm_hints->flags & WindowGroupHint) {
@@ -686,19 +704,34 @@ wManageWindow(WScreen *scr, Window window)
wKWMCheckClientInitialState(wwin);
#endif
/* if there is a saved state, restore it */
/* apply previous state if it exists and we're in startup */
if (scr->flags.startup && wm_state >= 0) {
if (wm_state == IconicState) {
wwin->flags.miniaturized = 1;
} else if (wm_state == WithdrawnState) {
withdraw = True;
}
}
/* if there is a saved state (from file), restore it */
win_state = NULL;
if (wwin->main_window!=None/* && wwin->main_window!=window*/) {
win_state = (WWindowState*)wWindowGetSavedState(wwin->main_window);
} else {
win_state = (WWindowState*)wWindowGetSavedState(window);
}
if (win_state && !(wwin->wm_hints && wwin->wm_hints->flags&StateHint &&
wwin->wm_hints->initial_state==WithdrawnState)) {
if (win_state && !withdraw) {
if (win_state->state->hidden>0)
wwin->flags.hidden = win_state->state->hidden;
if (win_state->state->shaded>0 && !WFLAGP(wwin, no_shadeable))
wwin->flags.shaded = win_state->state->shaded;
if (win_state->state->miniaturized>0 &&
!WFLAGP(wwin, no_miniaturizable)) {
wwin->flags.miniaturized = win_state->state->miniaturized;
@@ -718,14 +751,15 @@ wManageWindow(WScreen *scr, Window window)
}
}
/* if we're restarting, restore saved state. This will overwrite previous */
/* if we're restarting, restore saved state (from hints).
* This will overwrite previous */
{
WSavedState *wstate;
if (getSavedState(window, &wstate)) {
wwin->flags.shaded = wstate->shaded;
wwin->flags.hidden = wstate->hidden;
wwin->flags.miniaturized = 0;
wwin->flags.miniaturized = wstate->miniaturized;
workspace = wstate->workspace;
free(wstate);
}
@@ -733,7 +767,7 @@ wManageWindow(WScreen *scr, Window window)
/* don't let transients start miniaturized if their owners are not */
if (transientOwner && !transientOwner->flags.miniaturized
&& wwin->flags.miniaturized) {
&& wwin->flags.miniaturized && !withdraw) {
wwin->flags.miniaturized = 0;
if (wwin->wm_hints)
wwin->wm_hints->initial_state = NormalState;
@@ -774,8 +808,7 @@ wManageWindow(WScreen *scr, Window window)
/* do not ask for window placement if the window is
* transient, during startup, if the initial workspace is another one
* or if the window wants to
* start iconic.
* or if the window wants to start iconic.
* If geometry was saved, restore it. */
{
Bool dontBring = False;
@@ -783,8 +816,8 @@ wManageWindow(WScreen *scr, Window window)
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
} else if (wwin->transient_for==None && !scr->flags.startup
&& workspace == scr->current_workspace
&& !wwin->flags.miniaturized
&& !wwin->flags.maximized
&& !(wwin->normal_hints->flags & (USPosition|PPosition))) {
@@ -796,6 +829,12 @@ wManageWindow(WScreen *scr, Window window)
if (WFLAGP(wwin, dont_move_off) && dontBring)
wScreenBringInside(scr, &x, &y, width, height);
}
if (wwin->flags.urgent) {
if (!IS_OMNIPRESENT(wwin))
wwin->flags.omnipresent ^= 1;
}
/*
*--------------------------------------------------
*
@@ -803,7 +842,6 @@ wManageWindow(WScreen *scr, Window window)
*
*--------------------------------------------------
*/
foo = WFF_LEFT_BUTTON | WFF_RIGHT_BUTTON;
if (!WFLAGP(wwin, no_titlebar))
foo |= WFF_TITLEBAR;
@@ -943,9 +981,7 @@ wManageWindow(WScreen *scr, Window window)
/* if window is in this workspace and should be mapped, then map it */
if (!wwin->flags.miniaturized
&& (workspace == scr->current_workspace || IS_OMNIPRESENT(wwin))
&& !wwin->flags.hidden
&& !(wwin->wm_hints && (wwin->wm_hints->flags & StateHint)
&& wwin->wm_hints->initial_state == WithdrawnState)) {
&& !wwin->flags.hidden && !withdraw) {
/* The following "if" is to avoid crashing of clients that expect
* WM_STATE set before they get mapped. Else WM_STATE is set later,
@@ -1029,7 +1065,6 @@ wManageWindow(WScreen *scr, Window window)
wwin->prev = NULL;
}
#ifdef GNOME_STUFF
wGNOMEUpdateClientStateHint(wwin, True);
#endif
@@ -1066,16 +1101,18 @@ wManageWindow(WScreen *scr, Window window)
wGNOMEUpdateClientListHint(scr);
#endif
#ifdef KWM_HINTS
wwin->flags.kwm_managed = 1;
wKWMSendEventMessage(wwin, WKWMAddWindow);
#endif
wColormapInstallForWindow(wwin->screen_ptr, scr->cmap_window);
wColormapInstallForWindow(scr, scr->cmap_window);
UpdateSwitchMenu(wwin->screen_ptr, wwin, ACTION_ADD);
UpdateSwitchMenu(scr, wwin, ACTION_ADD);
#ifdef OLWM_HINTS
if (wwin->client_flags.olwm_warp_to_pin && wwin->frame->titlebar != NULL
&& !WFLAGP(wwin, no_close_button)) {
&& !WFLAGP(wwin, no_close_button) && !withdraw) {
XWarpPointer(dpy, None, None, 0, 0, 0, 0,
wwin->frame_x + width - wwin->frame->titlebar->height * 2,
@@ -1085,13 +1122,24 @@ wManageWindow(WScreen *scr, Window window)
/*
*--------------------------------------------------
*
* Cleanup temporary stuff
*
*--------------------------------------------------
*/
if (win_state)
wWindowDeleteSavedState(win_state);
/* If the window must be withdrawed, then do it now.
* Must do some optimization, 'though */
if (withdraw) {
wwin->flags.mapped = 0;
wClientSetState(wwin, WithdrawnState, None);
wUnmanageWindow(wwin, True, False);
wwin = NULL;
}
return wwin;
}
@@ -1276,6 +1324,9 @@ wUnmanageWindow(WWindow *wwin, Bool restore, Bool destroyed)
XRemoveFromSaveSet(dpy, wwin->client_win);
XSelectInput(dpy, wwin->client_win, NoEventMask);
XUngrabButton(dpy, AnyButton, AnyModifier, wwin->client_win);
XUngrabKey(dpy, AnyKey, AnyModifier, wwin->client_win);
}
XUnmapWindow(dpy, frame->window);
@@ -2010,6 +2061,7 @@ wWindowSaveState(WWindow *wwin)
memset(data, 0, sizeof(CARD32)*9);
data[0] = wwin->frame->workspace;
data[1] = wwin->flags.miniaturized;
data[2] = wwin->flags.shaded;
data[3] = wwin->flags.hidden;
@@ -2608,7 +2660,8 @@ titlebarMouseDown(WCoreWindow *sender, void *data, XEvent *event)
XUngrabPointer(dpy, CurrentTime);
} else if (event->xbutton.button == Button3 && event->xbutton.state==0
&& !wwin->flags.internal_window) {
&& !wwin->flags.internal_window
&& !WCHECK_STATE(WSTATE_MODAL)) {
WObjDescriptor *desc;
if (event->xbutton.window != wwin->frame->titlebar->window
+5
View File
@@ -127,6 +127,8 @@ typedef struct {
unsigned int start_maximized:1;
unsigned int dont_save_session:1; /* do not save app's state in session */
unsigned int full_maximize:1;
/*
* emulate_app_icon must be automatically disabled for apps that can
* generate their own appicons and for apps that have no_appicon=1
@@ -268,8 +270,11 @@ typedef struct WWindow {
unsigned int waiting_save_ack:1; /* waiting for SAVE_YOURSELF ack */
unsigned int obscured:1; /* window is obscured */
unsigned int dragged_while_fmaximized;
#ifdef KWM_HINTS
unsigned int kwm_hidden_for_modules:1;
unsigned int kwm_managed:1;
#endif
#ifdef OLWM_HINTS
unsigned int olwm_push_pin_out:1;/* emulate pushpin behaviour */
+22 -8
View File
@@ -72,6 +72,7 @@ static proplist_t AStartMiniaturized;
static proplist_t AStartMaximized;
static proplist_t ADontSaveSession;
static proplist_t AEmulateAppIcon;
static proplist_t AFullMaximize;
static proplist_t AStartWorkspace;
@@ -119,6 +120,7 @@ make_keys()
AStartHidden = PLMakeString("StartHidden");
ADontSaveSession = PLMakeString("DontSaveSession");
AEmulateAppIcon = PLMakeString("EmulateAppIcon");
AFullMaximize = PLMakeString("FullMaximize");
AStartWorkspace = PLMakeString("StartWorkspace");
@@ -532,6 +534,9 @@ saveSettings(WMButton *button, InspectorPanel *panel)
value = (WMGetButtonSelected(panel->moreChk[6])!=0) ? Yes : No;
insertAttribute(dict, winDic, AEmulateAppIcon, value, &different, flags);
value = (WMGetButtonSelected(panel->moreChk[7])!=0) ? Yes : No;
insertAttribute(dict, winDic, AFullMaximize, value, &different, flags);
/* application wide settings for when */
/* the window is the leader, save the attribute with the others */
if (panel->inspected->main_window == panel->inspected->client_win) {
@@ -547,6 +552,7 @@ saveSettings(WMButton *button, InspectorPanel *panel)
if (different) {
PLInsertDictionaryEntry(dict, key, winDic);
}
PLRelease(key);
PLRelease(winDic);
@@ -709,6 +715,7 @@ applySettings(WMButton *button, InspectorPanel *panel)
WSETUFLAG(wwin, no_focusable, WMGetButtonSelected(panel->moreChk[4]));
WSETUFLAG(wwin, dont_save_session, WMGetButtonSelected(panel->moreChk[5]));
WSETUFLAG(wwin, emulate_appicon, WMGetButtonSelected(panel->moreChk[6]));
WSETUFLAG(wwin, full_maximize, WMGetButtonSelected(panel->moreChk[7]));
WSETUFLAG(wwin, always_user_icon, WMGetButtonSelected(panel->alwChk));
if (WFLAGP(wwin, no_titlebar) && wwin->flags.shaded)
@@ -851,7 +858,7 @@ revertSettings(WMButton *button, InspectorPanel *panel)
}
WMSetButtonSelected(panel->attrChk[i], flag);
}
for (i=0; i < 7; i++) {
for (i=0; i < 8; i++) {
int flag = 0;
switch (i) {
@@ -876,6 +883,9 @@ revertSettings(WMButton *button, InspectorPanel *panel)
case 6:
flag = WFLAGP(wwin, emulate_appicon);
break;
case 7:
flag = WFLAGP(wwin, full_maximize);
break;
}
WMSetButtonSelected(panel->moreChk[i], flag);
}
@@ -949,7 +959,7 @@ textEditedObserver(void *observerData, WMNotification *notification)
if ((long)WMGetNotificationClientData(notification) != WMReturnTextMovement)
return;
if (observerData == panel->fileText) {
if (WMGetNotificationObject(notification) == panel->fileText) {
showIconFor(WMWidgetScreen(panel->win), panel, NULL, NULL,
USE_TEXT_FIELD);
/*
@@ -1106,8 +1116,8 @@ createInspectorForWindow(WWindow *wwin)
/**** attributes ****/
panel->attrFrm = WMCreateFrame(panel->win);
WMSetFrameTitle(panel->attrFrm, _("Attributes"));
WMMoveWidget(panel->attrFrm, 15, 50);
WMResizeWidget(panel->attrFrm, frame_width, 240);
WMMoveWidget(panel->attrFrm, 15, 45);
WMResizeWidget(panel->attrFrm, frame_width, 250);
for (i=0; i < 10; i++) {
char *caption = NULL;
@@ -1166,10 +1176,10 @@ createInspectorForWindow(WWindow *wwin)
/**** more attributes ****/
panel->moreFrm = WMCreateFrame(panel->win);
WMSetFrameTitle(panel->moreFrm, _("Advanced"));
WMMoveWidget(panel->moreFrm, 15, 50);
WMResizeWidget(panel->moreFrm, frame_width, 240);
WMMoveWidget(panel->moreFrm, 15, 45);
WMResizeWidget(panel->moreFrm, frame_width, 250);
for (i=0; i < 7; i++) {
for (i=0; i < 8; i++) {
char *caption = NULL;
int flag = 0;
@@ -1202,6 +1212,10 @@ createInspectorForWindow(WWindow *wwin)
caption = _("Emulate Application Icon");
flag = WFLAGP(wwin, emulate_appicon);
break;
case 7:
caption = _("Full Screen Maximization");
flag = WFLAGP(wwin, full_maximize);
break;
}
panel->moreChk[i] = WMCreateSwitchButton(panel->moreFrm);
WMMoveWidget(panel->moreChk[i], 10, 20*(i+1));
@@ -1212,7 +1226,7 @@ createInspectorForWindow(WWindow *wwin)
panel->moreLbl = WMCreateLabel(panel->moreFrm);
WMResizeWidget(panel->moreLbl, frame_width - (2 * 5), 60);
WMMoveWidget(panel->moreLbl, 5, 160);
WMMoveWidget(panel->moreLbl, 5, 180);
WMSetLabelText(panel->moreLbl,
_("Enable the \"Don't bind...\" options to allow the "
"application to receive all mouse or keyboard events."));
+1 -1
View File
@@ -60,7 +60,7 @@ typedef struct InspectorPanel {
/* 3rd page. more attributes */
WMFrame *moreFrm;
WMButton *moreChk[7];
WMButton *moreChk[8];
WMLabel *moreLbl;
+1 -1
View File
@@ -124,7 +124,7 @@ DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
SOURCES = $(wtest_SOURCES)
OBJECTS = $(wtest_OBJECTS)
+3 -2
View File
@@ -5,9 +5,10 @@ pkgdatadir = $(datadir)/@PACKAGE@
bin_PROGRAMS = wxcopy wxpaste wdwrite getstyle setstyle seticons geticonset wmsetbg
bin_SCRIPTS = wmaker.inst wm-oldmenu2new wsetfont
bin_SCRIPTS = wmaker.inst wm-oldmenu2new wsetfont wkdemenu.pl
EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wsetfont directjpeg.c
EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wsetfont directjpeg.c \
wkdemenu.pl
INCLUDES = @DFLAGS@ -I$(top_srcdir)/wrlib @HEADER_SEARCH_PATH@
+4 -3
View File
@@ -91,9 +91,10 @@ pkgdatadir = $(datadir)/@PACKAGE@
bin_PROGRAMS = wxcopy wxpaste wdwrite getstyle setstyle seticons geticonset wmsetbg
bin_SCRIPTS = wmaker.inst wm-oldmenu2new wsetfont
bin_SCRIPTS = wmaker.inst wm-oldmenu2new wsetfont wkdemenu.pl
EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wsetfont directjpeg.c wkdemenu.pl
EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wsetfont directjpeg.c
INCLUDES = @DFLAGS@ -I$(top_srcdir)/wrlib @HEADER_SEARCH_PATH@
@@ -184,7 +185,7 @@ DIST_COMMON = README Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
SOURCES = $(wxcopy_SOURCES) $(wxpaste_SOURCES) $(wdwrite_SOURCES) $(getstyle_SOURCES) $(setstyle_SOURCES) $(seticons_SOURCES) $(geticonset_SOURCES) $(wmsetbg_SOURCES)
OBJECTS = $(wxcopy_OBJECTS) $(wxpaste_OBJECTS) $(wdwrite_OBJECTS) $(getstyle_OBJECTS) $(setstyle_OBJECTS) $(seticons_OBJECTS) $(geticonset_OBJECTS) $(wmsetbg_OBJECTS)
+1 -1
View File
@@ -33,4 +33,4 @@ wdwrite- write data into the defaults database (configuration files).
wsetfont- set locale the fonts needed for a specific locale for Window Maker
wkdemenu.sh- convert a KDE menu into a wmaker menu (for pipe)
wkdemenu.pl- convert a KDE menu into a wmaker menu (for pipe)
+7 -5
View File
@@ -303,8 +303,9 @@ main(int argc, char **argv)
prop = PLGetProplistWithPath(path);
if (!prop) {
printf("%s:could not load WindowMaker configuration file \"%s\".\n",
ProgName, path);
perror(path);
printf("%s:could not load WindowMaker configuration file.\n",
ProgName);
exit(1);
}
@@ -345,8 +346,8 @@ main(int argc, char **argv)
style = PLGetProplistWithPath(buffer);
if (!style) {
printf("%s:could not load style file \"%s\".\n", ProgName,
buffer);
perror(buffer);
printf("%s:could not load style file.\n", ProgName);
exit(1);
}
@@ -355,7 +356,8 @@ main(int argc, char **argv)
} else {
style = PLGetProplistWithPath(file);
if (!style) {
printf("%s:could not load style file \"%s\".\n", ProgName, file);
perror(file);
printf("%s:could not load style file.\n", ProgName);
exit(1);
}
}

Some files were not shown because too many files have changed in this diff Show More