From d70c3af41e730972b697934f91cf4ad486b0c9e5 Mon Sep 17 00:00:00 2001 From: Chris Lee Date: Tue, 25 Apr 2000 01:00:31 +0000 Subject: [PATCH] Adding in a personally preferred KWin style. Yet again- the first one of its kind? Not created by Mosfet? : ) we'll see... -Chris svn path=/trunk/kdebase/kwin/; revision=47482 --- clients/Makefile.am | 2 +- clients/mwm/Makefile.am | 20 ++ clients/mwm/Makefile.in | 624 ++++++++++++++++++++++++++++++++++++++ clients/mwm/README | 8 + clients/mwm/mwm.desktop | 3 + clients/mwm/mwmclient.cpp | 321 ++++++++++++++++++++ clients/mwm/mwmclient.h | 52 ++++ 7 files changed, 1029 insertions(+), 1 deletion(-) create mode 100644 clients/mwm/Makefile.am create mode 100644 clients/mwm/Makefile.in create mode 100644 clients/mwm/README create mode 100644 clients/mwm/mwm.desktop create mode 100644 clients/mwm/mwmclient.cpp create mode 100644 clients/mwm/mwmclient.h diff --git a/clients/Makefile.am b/clients/Makefile.am index 8a490771eb..1a440099ee 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -1 +1 @@ -SUBDIRS=kstep system b2 laptop riscos +SUBDIRS=kstep system b2 laptop riscos mwm diff --git a/clients/mwm/Makefile.am b/clients/mwm/Makefile.am new file mode 100644 index 0000000000..dbfd4505a9 --- /dev/null +++ b/clients/mwm/Makefile.am @@ -0,0 +1,20 @@ + +INCLUDES = $(all_includes) + +lib_LTLIBRARIES = libkwinmwm.la + +libkwinmwm_la_SOURCES = mwmclient.cpp + +METASOURCES = AUTO +noinst_HEADERS = mwmclient.h + +lnkdir = $(kde_datadir)/kwin/ +lnk_DATA = mwm.desktop + +EXTRA_DIST = $(lnk_DATA) + +libkwinmwm_la_LDFLAGS = $(all_libraries) -version-info 1:0:0 -module -rdynamic + +###KMAKE-start (don't edit or delete this block) + +###KMAKE-end diff --git a/clients/mwm/Makefile.in b/clients/mwm/Makefile.in new file mode 100644 index 0000000000..e9040a8504 --- /dev/null +++ b/clients/mwm/Makefile.in @@ -0,0 +1,624 @@ +# KDE tags expanded automatically by am_edit - $Revision$ +# 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@ +#>+ 3 +DEPDIR = .deps + +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 = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +AS = @AS@ +AUTODIRS = @AUTODIRS@ +CC = @CC@ +CPP = @CPP@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DLLTOOL = @DLLTOOL@ +DPMSINC = @DPMSINC@ +DPMSLIB = @DPMSLIB@ +EXEEXT = @EXEEXT@ +EXTRA_LIBSMB_ADD = @EXTRA_LIBSMB_ADD@ +EXTRA_LIBSMB_FLAGS = @EXTRA_LIBSMB_FLAGS@ +GLINC = @GLINC@ +GLLIB = @GLLIB@ +GL_SAVERS = @GL_SAVERS@ +GMSGFMT = @GMSGFMT@ +IDL = @IDL@ +IDL_DEPENDENCIES = @IDL_DEPENDENCIES@ +KDE_CXXFLAGS = @KDE_CXXFLAGS@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_INCLUDES = @KDE_INCLUDES@ +KDE_LDFLAGS = @KDE_LDFLAGS@ +KDE_RPATH = @KDE_RPATH@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KERBEROS_INCS = @KERBEROS_INCS@ +KERBEROS_LIBS = @KERBEROS_LIBS@ +KERBEROS_ROOT = @KERBEROS_ROOT@ +KRB_RPATH = @KRB_RPATH@ +LDAP_INCS = @LDAP_INCS@ +LDAP_LIBS = @LDAP_LIBS@ +LDAP_RPATH = @LDAP_RPATH@ +LDAP_SUBDIR = @LDAP_SUBDIR@ +LIBALIB = @LIBALIB@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBCURSES = @LIBCURSES@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBMICO = @LIBMICO@ +LIBOBJS = @LIBOBJS@ +LIBOSSAUDIO = @LIBOSSAUDIO@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBPYTHON = @LIBPYTHON@ +LIBQIMGIO = @LIBQIMGIO@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTIFF = @LIBTIFF@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTEMPTER = @LIBUTEMPTER@ +LIBUTIL = @LIBUTIL@ +LIBXDMCP = @LIBXDMCP@ +LIBZ = @LIBZ@ +LIB_KAB = @LIB_KAB@ +LIB_KDECORE = @LIB_KDECORE@ +LIB_KDEUI = @LIB_KDEUI@ +LIB_KFILE = @LIB_KFILE@ +LIB_KFM = @LIB_KFM@ +LIB_KFORMULA = @LIB_KFORMULA@ +LIB_KHTML = @LIB_KHTML@ +LIB_KIMGIO = @LIB_KIMGIO@ +LIB_KIO = @LIB_KIO@ +LIB_KPARTS = @LIB_KPARTS@ +LIB_KSPELL = @LIB_KSPELL@ +LIB_KSYCOCA = @LIB_KSYCOCA@ +LIB_KWRITE = @LIB_KWRITE@ +LIB_LIBS = @LIB_LIBS@ +LIB_QT = @LIB_QT@ +LIB_SMB = @LIB_SMB@ +LIB_X11 = @LIB_X11@ +LN_S = @LN_S@ +MAKEINFO = @MAKEINFO@ +MICO_INCLUDES = @MICO_INCLUDES@ +MICO_LDFLAGS = @MICO_LDFLAGS@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +NOREPO = @NOREPO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +ODBC_DIR = @ODBC_DIR@ +PACKAGE = @PACKAGE@ +PAMINC = @PAMINC@ +PAMLIBPATHS = @PAMLIBPATHS@ +PAMLIBS = @PAMLIBS@ +PASSWDLIB = @PASSWDLIB@ +PYTHONINC = @PYTHONINC@ +PYTHONLIB = @PYTHONLIB@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +REPO = @REPO@ +RUN_KAPPFINDER = @RUN_KAPPFINDER@ +SAMBA_LIBS = @SAMBA_LIBS@ +SETUIDFLAGS = @SETUIDFLAGS@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_NLS = @USE_NLS@ +USE_RTTI = @USE_RTTI@ +VERSION = @VERSION@ +XBINDIR = @XBINDIR@ +XGETTEXT = @XGETTEXT@ +XPMINC = @XPMINC@ +XPMLIB = @XPMLIB@ +XPM_SAVERS = @XPM_SAVERS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +X_SERVER = @X_SERVER@ +ac_xdmdir = @ac_xdmdir@ +all_includes = @all_includes@ +all_libraries = @all_libraries@ +idldir = @idldir@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_cgidir = @kde_cgidir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_includes = @kde_includes@ +kde_libraries = @kde_libraries@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_minidir = @kde_minidir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_toolbardir = @kde_toolbardir@ +kde_wallpaperdir = @kde_wallpaperdir@ +micodir = @micodir@ +nogroup = @nogroup@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +xdmconfigsubdir = @xdmconfigsubdir@ + +INCLUDES = $(all_includes) + +lib_LTLIBRARIES = libkwinmwm.la + +libkwinmwm_la_SOURCES = mwmclient.cpp + +#>- METASOURCES = AUTO +noinst_HEADERS = mwmclient.h + +lnkdir = $(kde_datadir)/kwin/ +lnk_DATA = mwm.desktop + +EXTRA_DIST = $(lnk_DATA) + +libkwinmwm_la_LDFLAGS = $(all_libraries) -version-info 1:0:0 -module -rdynamic +mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs +CONFIG_HEADER = ../../../config.h +CONFIG_CLEAN_FILES = +LTLIBRARIES = $(lib_LTLIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I../../.. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libkwinmwm_la_LIBADD = +#>- libkwinmwm_la_OBJECTS = mwmclient.lo +#>+ 4 +@KDE_USE_FINAL_FALSE@libkwinmwm_la_OBJECTS = mwmclient.lo\ +mwmclient.moc.lo +@KDE_USE_FINAL_TRUE@libkwinmwm_la_OBJECTS = libkwinmwm_la.all_cpp.lo +libkwinmwm_la_final_OBJECTS = libkwinmwm_la.all_cpp.lo +CXXFLAGS = @CXXFLAGS@ +#>- CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 1 +CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 1 +LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ +#>+ 1 +CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) $(LDFLAGS) -o $@ +DATA = $(lnk_DATA) + +HEADERS = $(noinst_HEADERS) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +#>- DEP_FILES = .deps/mwmclient.P +#>+ 4 +@KDE_USE_FINAL_TRUE@DEP_FILES = $(DEPDIR)/mwmclient.moc.P $(DEPDIR)/libkwinmwm_la.all_cpp.P \ + .deps/mwmclient.P +@KDE_USE_FINAL_FALSE@DEP_FILES = $(DEPDIR)/mwmclient.moc.P .deps/mwmclient.P + +SOURCES = $(libkwinmwm_la_SOURCES) +OBJECTS = $(libkwinmwm_la_OBJECTS) + +#>- all: all-redirect +#>+ 1 +all: docs-am all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .cpp .lo .o .obj .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +#>- cd $(top_srcdir) && $(AUTOMAKE) --gnu kwin/clients/mwm/Makefile +#>+ 2 + cd $(top_srcdir) && $(AUTOMAKE) --gnu kwin/clients/mwm/Makefile + cd $(top_srcdir) && perl admin/am_edit kwin/clients/mwm/Makefile.in + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-libLTLIBRARIES: + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + +distclean-libLTLIBRARIES: + +maintainer-clean-libLTLIBRARIES: + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(libdir) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \ + $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \ + else :; fi; \ + done + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ + done + +# FIXME: We should only use cygpath when building on Windows, +# and only if it is available. +.c.obj: + $(COMPILE) -c `cygpath -w $<` + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + -rm -f *.$(OBJEXT) + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +.s.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +.S.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + +maintainer-clean-libtool: + +libkwinmwm.la: $(libkwinmwm_la_OBJECTS) $(libkwinmwm_la_DEPENDENCIES) + $(CXXLINK) -rpath $(libdir) $(libkwinmwm_la_LDFLAGS) $(libkwinmwm_la_OBJECTS) $(libkwinmwm_la_LIBADD) $(LIBS) +.cpp.o: + $(CXXCOMPILE) -c $< +.cpp.obj: + $(CXXCOMPILE) -c `cygpath -w $<` +.cpp.lo: + $(LTCXXCOMPILE) -c $< + +install-lnkDATA: $(lnk_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(lnkdir) + @list='$(lnk_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(lnkdir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(lnkdir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(lnkdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(lnkdir)/$$p; \ + fi; fi; \ + done + +uninstall-lnkDATA: + @$(NORMAL_UNINSTALL) + list='$(lnk_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(lnkdir)/$$p; \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = kwin/clients/mwm + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu kwin/clients/mwm/Makefile + @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 + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +%.o: %.cpp + @echo '$(CXXCOMPILE) -c $<'; \ + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.cpp + @echo '$(LTCXXCOMPILE) -c $<'; \ + $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp +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-libLTLIBRARIES +install-exec: install-exec-am + +install-data-am: install-lnkDATA +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-libLTLIBRARIES uninstall-lnkDATA +uninstall: uninstall-am +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(lnkdir) + + +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-libLTLIBRARIES mostlyclean-compile \ + mostlyclean-libtool mostlyclean-tags mostlyclean-depend \ + mostlyclean-generic + +mostlyclean: mostlyclean-am + +#>- clean-am: clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \ +#>- clean-depend clean-generic mostlyclean-am +#>+ 2 +clean-am: clean-metasources clean-final clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \ + clean-depend clean-generic mostlyclean-am + +#>- clean: clean-am +#>+ 1 +clean: kde-rpo-clean clean-am + +distclean-am: distclean-libLTLIBRARIES distclean-compile \ + distclean-libtool distclean-tags distclean-depend \ + distclean-generic clean-am + -rm -f libtool + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-libLTLIBRARIES \ + maintainer-clean-compile maintainer-clean-libtool \ + maintainer-clean-tags maintainer-clean-depend \ + 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: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \ +clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \ +uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \ +distclean-compile clean-compile maintainer-clean-compile \ +mostlyclean-libtool distclean-libtool clean-libtool \ +maintainer-clean-libtool uninstall-lnkDATA install-lnkDATA tags \ +mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \ +distdir mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend 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 + + +###KMAKE-start (don't edit or delete this block) + +###KMAKE-end + +# 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: + +#>+ 3 +mwmclient.moc.cpp: $(srcdir)/mwmclient.h + $(MOC) $(srcdir)/mwmclient.h -o mwmclient.moc.cpp + +#>+ 3 +clean-metasources: + -rm -f mwmclient.moc.cpp + +#>+ 2 +docs-am: + +#>+ 5 +force-reedit: + cd $(top_srcdir) && $(AUTOMAKE) --gnu kwin/clients/mwm/Makefile + cd $(top_srcdir) && perl admin/am_edit kwin/clients/mwm/Makefile.in + + +#>+ 11 +libkwinmwm_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/mwmclient.cpp mwmclient.moc.cpp + @echo 'creating libkwinmwm_la.all_cpp.cpp ...'; \ + rm -f libkwinmwm_la.all_cpp.files libkwinmwm_la.all_cpp.final; \ + echo "#define KDE_USE_FINAL 1" >> libkwinmwm_la.all_cpp.final; \ + for file in mwmclient.cpp mwmclient.moc.cpp; do \ + echo "#include \"$$file\"" >> libkwinmwm_la.all_cpp.files; \ + test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libkwinmwm_la.all_cpp.final; \ + done; \ + cat libkwinmwm_la.all_cpp.final libkwinmwm_la.all_cpp.files > libkwinmwm_la.all_cpp.cpp; \ + rm -f libkwinmwm_la.all_cpp.final libkwinmwm_la.all_cpp.files + +#>+ 3 +clean-final: + -rm -f libkwinmwm_la.all_cpp.cpp + +#>+ 2 +final: + $(MAKE) libkwinmwm_la_OBJECTS="$(libkwinmwm_la_final_OBJECTS)" all-am +#>+ 3 +cvs-clean: + $(MAKE) -f $(top_srcdir)/admin/Makefile.common cvs-clean + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo diff --git a/clients/mwm/README b/clients/mwm/README new file mode 100644 index 0000000000..498ff038f1 --- /dev/null +++ b/clients/mwm/README @@ -0,0 +1,8 @@ +This is a test style that I'm working on- I'm basing it on KStep right now, +but it'll eventually provide an MWM lookalike which I personally would really +like to see. It's all about scratching an itch, right? ; ) + +The only reason I've commited this is so that I don't get cvs bitching at me +because it doesn't know what it's doing. + +-Chris diff --git a/clients/mwm/mwm.desktop b/clients/mwm/mwm.desktop new file mode 100644 index 0000000000..ab9a641927 --- /dev/null +++ b/clients/mwm/mwm.desktop @@ -0,0 +1,3 @@ +[Desktop Entry] +Name=MWM +X-KDE-Library=libkwinmwm diff --git a/clients/mwm/mwmclient.cpp b/clients/mwm/mwmclient.cpp new file mode 100644 index 0000000000..ace15d64b7 --- /dev/null +++ b/clients/mwm/mwmclient.cpp @@ -0,0 +1,321 @@ +#include "mwmclient.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "../../workspace.h" +#include "../../options.h" + +extern "C" +{ + Client *allocate(Workspace *ws, WId w) + { + return(new MwmClient(ws, w)); + } +} + + +static unsigned char close_bits[] = { + 0x03, 0x03, 0x87, 0x03, 0xce, 0x01, 0xfc, 0x00, 0x78, 0x00, 0x78, 0x00, + 0xfc, 0x00, 0xce, 0x01, 0x87, 0x03, 0x03, 0x03}; + +static unsigned char iconify_bits[] = { + 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0xff, 0x03, 0xff, 0x03}; + +static unsigned char sticky_bits[] = { + 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0xfe, 0x01, 0xfe, 0x01, + 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00}; + +static unsigned char unsticky_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0xfe, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +static KPixmap *aTitlePix=0; +static KPixmap *iTitlePix=0; +static KPixmap *aFramePix=0; +static KPixmap *iFramePix=0; +static KPixmap *aHandlePix=0; +static KPixmap *iHandlePix=0; +static bool pixmaps_created = false; + +static void create_pixmaps() +{ + if(pixmaps_created) + return; + pixmaps_created = true; + + aTitlePix = new KPixmap(); + aTitlePix->resize(32, 14); + KPixmapEffect::gradient(*aTitlePix, + options->color(Options::TitleBar, true), + options->color(Options::TitleBlend, true), + KPixmapEffect::VerticalGradient); + iTitlePix = new KPixmap(); + iTitlePix->resize(32, 14); + KPixmapEffect::gradient(*iTitlePix, + options->color(Options::TitleBar, false), + options->color(Options::TitleBlend, false), + KPixmapEffect::VerticalGradient); + // Bottom frame gradient + aFramePix = new KPixmap(); + aFramePix->resize(32, 6); + KPixmapEffect::gradient(*aFramePix, + options->color(Options::Frame, true).light(150), + options->color(Options::Frame, true).dark(120), + KPixmapEffect::VerticalGradient); + iFramePix = new KPixmap(); + iFramePix->resize(32, 6); + KPixmapEffect::gradient(*iFramePix, + options->color(Options::Frame, false).light(150), + options->color(Options::Frame, false).dark(120), + KPixmapEffect::VerticalGradient); + + // Handle gradient + aHandlePix = new KPixmap(); + aHandlePix->resize(32, 6); + KPixmapEffect::gradient(*aHandlePix, + options->color(Options::Handle, true).light(150), + options->color(Options::Handle, true).dark(120), + KPixmapEffect::VerticalGradient); + iHandlePix = new KPixmap(); + iHandlePix->resize(32, 6); + KPixmapEffect::gradient(*iHandlePix, + options->color(Options::Handle, false).light(150), + options->color(Options::Handle, false).dark(120), + KPixmapEffect::VerticalGradient); +} + +void MwmClient::slotReset() +{ + delete aTitlePix; + delete iTitlePix; + delete aFramePix; + delete iFramePix; + delete aHandlePix; + delete iHandlePix; + pixmaps_created = false; + create_pixmaps(); + button[0]->reset(); + button[1]->reset(); + button[2]->reset(); +} + +MwmButton::MwmButton(QWidget *parent, const char *name, + const unsigned char *bitmap, int bw, int bh) + : QButton(parent, name) +{ + QPainter p; + + aBackground.resize(18, 18); + iBackground.resize(18, 18); + reset(); + resize(18, 18); + + if(bitmap) + setBitmap(bitmap, bw, bh); +} + +void MwmButton::reset() +{ + QPainter p; + + QColor hColor(options->color(Options::ButtonBg, true)); + QColor lColor(options->color(Options::ButtonBlend, true)); + // only do this if we can dim/brighten equally + if(hColor.red() < 226 && hColor.green() < 226 && hColor.blue() < 226) + hColor.setRgb(hColor.red()+30, hColor.green()+30, hColor.blue()+30); + if(lColor.red() > 29 && lColor.green() > 29 && lColor.blue() > 29) + lColor.setRgb(lColor.red()-30, lColor.green()-30, lColor.blue()-30); + KPixmapEffect::gradient(iBackground, hColor, lColor, + KPixmapEffect::DiagonalGradient); + + hColor = options->color(Options::ButtonBlend, false); + lColor = options->color(Options::ButtonBg, false); + if(hColor.red() > 29 && hColor.green() > 29 && hColor.blue() > 29) + hColor.setRgb(hColor.red()-30, hColor.green()-30, hColor.blue()-30); + if(lColor.red() < 226 && lColor.green() < 226 && lColor.blue() < 226) + lColor.setRgb(lColor.red()+30, lColor.green()+30, lColor.blue()+30); + KPixmapEffect::gradient(aBackground, hColor, lColor, + KPixmapEffect::DiagonalGradient); + + KPixmap aInternal; + aInternal.resize(12, 12); + KPixmap iInternal; + iInternal.resize(12, 12); + KPixmapEffect::gradient(iInternal, + options->color(Options::ButtonBlend, true), + options->color(Options::ButtonBg, true), + KPixmapEffect::DiagonalGradient); + KPixmapEffect::gradient(aInternal, + options->color(Options::ButtonBg, false), + options->color(Options::ButtonBlend, false), + KPixmapEffect::DiagonalGradient); + + p.begin(&iBackground); + p.drawPixmap(3, 3, iInternal); + p.setPen(Qt::black); + p.drawRect(0, 0, 18, 18); + p.end(); + + p.begin(&aBackground); + p.drawPixmap(3, 3, aInternal); + p.setPen(Qt::black); + p.drawRect(0, 0, 18, 18); + p.end(); +} + +void MwmButton::setBitmap(const unsigned char *bitmap, int w, int h) +{ + deco = QBitmap(w, h, bitmap, true); + deco.setMask(deco); + repaint(); +} + +void MwmButton::drawButton(QPainter *p) +{ + if(isDown()) + p->drawPixmap(0, 0, aBackground); + else + p->drawPixmap(0, 0, iBackground); + + p->setPen(options->color(Options::ButtonFg, isDown())); + p->drawPixmap(isDown()? 5 : 4, isDown() ? 5 : 4, deco); +} + +MwmClient::MwmClient( Workspace *ws, WId w, QWidget *parent, + const char *name ) + : Client( ws, w, parent, name, WResizeNoErase ) +{ + create_pixmaps(); + connect(options, SIGNAL(resetClients()), this, SLOT(slotReset())); + + QVBoxLayout *mainLayout = new QVBoxLayout(this); + QHBoxLayout *titleLayout = new QHBoxLayout(); + QHBoxLayout *windowLayout = new QHBoxLayout(); + + mainLayout->addLayout(titleLayout); + mainLayout->addLayout(windowLayout, 1); + mainLayout->addSpacing(6); + + windowLayout->addSpacing(1); + windowLayout->addWidget(windowWrapper(), 1); + windowLayout->addSpacing(1); + + + button[0] = new MwmButton(this, "close", close_bits, 10, 10); + button[1] = new MwmButton(this, "sticky"); + if(isSticky()) + button[1]->setBitmap(unsticky_bits, 10, 10); + else + button[1]->setBitmap(sticky_bits, 10, 10); + button[2] = new MwmButton(this, "iconify", iconify_bits, 10, 10); + + connect( button[0], SIGNAL( clicked() ), this, ( SLOT( closeWindow() ) ) ); + connect( button[1], SIGNAL( clicked() ), this, ( SLOT( toggleSticky() ) ) ); + connect( button[2], SIGNAL( clicked() ), this, ( SLOT( iconify() ) ) ); + titleLayout->addWidget( button[2] ); + titlebar = new QSpacerItem(10, 16, QSizePolicy::Expanding, + QSizePolicy::Minimum ); + titleLayout->addItem(titlebar); + titleLayout->addWidget( button[1] ); + titleLayout->addWidget( button[0] ); + for ( int i = 0; i < 3; i++) { + button[i]->setMouseTracking( TRUE ); + button[i]->setFixedSize( 18, 18 ); + } + +} + +void MwmClient::resizeEvent( QResizeEvent* e) +{ + Client::resizeEvent( e ); + + if ( isVisibleToTLW() && !testWFlags( WNorthWestGravity )) { + QPainter p( this ); + QRect t = titlebar->geometry(); + t.setTop( 0 ); + QRegion r = rect(); + r = r.subtract( t ); + p.setClipRegion( r ); + p.eraseRect( rect() ); + } +} + +void MwmClient::captionChange( const QString& ) +{ + repaint( titlebar->geometry(), false ); +} + + +void MwmClient::paintEvent( QPaintEvent* ) +{ + QPainter p( this ); + p.setPen(Qt::black); + p.drawRect(rect()); + + QRect t = titlebar->geometry(); + t.setTop(1); + p.drawTiledPixmap(t.x()+1, t.y()+1, t.width()-2, t.height()-2, + isActive() ? *aTitlePix : *iTitlePix); + qDrawShadePanel(&p, t.x(), t.y(), t.width(), t.height()-1, + options->colorGroup(Options::TitleBar, isActive())); + p.drawLine(t.x(), t.bottom(), t.right(), t.bottom()); + QRegion r = rect(); + r = r.subtract( t ); + p.setClipRegion( r ); + p.setClipping( FALSE ); + + t.setTop( 2 ); + t.setHeight(t.height()-4); + t.setLeft( t.left() + 4 ); + t.setRight( t.right() - 2 ); + + p.setPen(options->color(Options::Font, isActive())); + p.setFont(options->font(isActive())); + p.drawText( t, AlignCenter, caption() ); + + + qDrawShadePanel(&p, rect().x()+1, rect().bottom()-6, 24, 6, + options->colorGroup(Options::Handle, isActive()), false); + p.drawTiledPixmap(rect().x()+2, rect().bottom()-5, 22, 4, + isActive() ? *aHandlePix : *iHandlePix); + + qDrawShadePanel(&p, rect().x()+25, rect().bottom()-6, rect().width()-50, 6, + options->colorGroup(Options::Frame, isActive()), false); + p.drawTiledPixmap(rect().x()+26, rect().bottom()-5, rect().width()-52, 4, + isActive() ? *aFramePix : *iFramePix); + + qDrawShadePanel(&p, rect().right()-24, rect().bottom()-6, 24, 6, + options->colorGroup(Options::Handle, isActive()), false); + p.drawTiledPixmap(rect().right()-23, rect().bottom()-5, 22, 4, + isActive() ? *aHandlePix : *iHandlePix); +} + +void MwmClient::mouseDoubleClickEvent( QMouseEvent * e ) +{ + if (titlebar->geometry().contains( e->pos() ) ) + setShade( !isShade() ); + workspace()->requestFocus( this ); +} + +void MwmClient::stickyChange(bool on) +{ + if(on) + button[1]->setBitmap(unsticky_bits, 8, 8); + else + button[1]->setBitmap(sticky_bits, 8, 8); +} + + +void MwmClient::init() +{ + Client::init(); +} + + diff --git a/clients/mwm/mwmclient.h b/clients/mwm/mwmclient.h new file mode 100644 index 0000000000..3359d91c62 --- /dev/null +++ b/clients/mwm/mwmclient.h @@ -0,0 +1,52 @@ +#ifndef __MWMCLIENT_H +#define __MWMCLIENT_H + +#include +#include +#include +#include "../../client.h" +class QLabel; +class QSpacerItem; + + +// get rid of autohide :P +class MwmButton : public QButton +{ +public: + MwmButton(QWidget *parent=0, const char *name=0, + const unsigned char *bitmap=NULL, int bw=0, int bh=0); + void setBitmap(const unsigned char *bitmap, int bw, int bh); + void reset(); +protected: + virtual void drawButton(QPainter *p); + void drawButtonLabel(QPainter *){;} + KPixmap aBackground, iBackground; + QBitmap deco; +}; + +class MwmClient : public Client +{ + Q_OBJECT +public: + MwmClient( Workspace *ws, WId w, QWidget *parent=0, const char *name=0 ); + ~MwmClient(){;} +protected: + void resizeEvent( QResizeEvent* ); + void paintEvent( QPaintEvent* ); + + void mouseDoubleClickEvent( QMouseEvent * ); + void init(); + void captionChange( const QString& name ); + void stickyChange(bool on); +protected slots: + void slotReset(); +private: + MwmButton* button[3]; + QSpacerItem* titlebar; +}; + + + + +#endif +