@ -0,0 +1,71 @@
|
||||
0.5.1
|
||||
-Hot corners delay controls whether Komposé is started and not when it's started :)
|
||||
-imlib2 error message added to configure script
|
||||
-Fixed "if a kompose window (prefs, about) is open, you are stuck"
|
||||
-Added german translation (thanks to Thomas Fischer)
|
||||
|
||||
0.5:
|
||||
-Composite support to take screenshots without raising windows
|
||||
-Damage support for live-updates of windows
|
||||
-major refactoring for a cleaner design
|
||||
-new View Type (current desktop)
|
||||
-activate when mouse moves in one of the screen's corners
|
||||
-added popup menu for windows
|
||||
-added a small screenshot delay for passive screenshots. This should make switching between tasks seem more responsive (redraws occur before taking screenshots) and help on most of the "overlapping windows" problems
|
||||
-fixed flashing background when activating Komposé
|
||||
-Switched to themable KDE cursors
|
||||
-Window title changes are now updated properly
|
||||
-Correct handling of windows that are on all desktops
|
||||
-additionally using hjkl(vi) keys for moving and c/m keys for close/minimize/restore
|
||||
-Imlib2, Composite and Damage autodetected through configure
|
||||
-some minor bugs and various smaller performance improvements
|
||||
|
||||
0.4.2:
|
||||
-Switching between views on the fly works again
|
||||
-Hopefully fixed unreproducable auto-Raising & -Minimizing ow Windows
|
||||
-Fixed highlighting of Virtual Desktops on mouseover
|
||||
-Config options for Virtual Desktop fonts&colors
|
||||
-Virtual Desktop Layout introduced in 0.4 now configurable
|
||||
-French translation by Sébastien Renard included (although some words are still english, sorry!)
|
||||
|
||||
0.4.1:
|
||||
-Fixed a compile bug - sorry guys!
|
||||
-Esc key works again
|
||||
|
||||
0.4:
|
||||
-faster image scaling speedups thanks to Imlib2 which is now required
|
||||
-Layout wastes less space (e.g. empty virtual desktops are smaller)
|
||||
-Show task icons and titles in Komposé (configruable through preferences)
|
||||
-Added --nosystray and --singleshot command line options
|
||||
-Added dcop support
|
||||
-Icon submitted by Philipp Droessler
|
||||
-Arrow keys can be used to traverse through tasks
|
||||
-Annoying Raise-bug fixed (no more raising of windows after komposé)
|
||||
-Images aren't scaled bigger than they actually are
|
||||
-the usual minor bugfixes
|
||||
|
||||
0.3:
|
||||
-Speedups in image processing
|
||||
-Overworked Preferences Dialog with some new options
|
||||
-view mode (that doesn't seperate between desktops)
|
||||
-Switching between view modes on-the-fly with right mouse popup menu
|
||||
-Rudimentary keyboard movement (Tab and Space/enter keys)
|
||||
-Added desktop tooltips
|
||||
-Kompose cannot be launched multiple times
|
||||
-Memory leak fixed
|
||||
-Added about dialog (should now be GPL compatible :) )
|
||||
|
||||
0.2.1:
|
||||
maintenance release, fixed some bugs that caused crashes
|
||||
|
||||
0.2:
|
||||
-Komposé now stays in system tray
|
||||
-You can assign a global shortcut to Komposé
|
||||
-Default behaviour is to create screenshots while you work. This can be changed in the preferences, but it's less annoying than the "pop up all windows before Komposé is started" thing.
|
||||
-Mouseover toolbar to minimize/raise/close windows
|
||||
-Graying out minimized windows
|
||||
-Drag & drop should work correctly now
|
||||
-Many bugfixes and huge Refactoring. The application structure should now allow a GL implementation of Komposé, I'll look at this in the next days
|
||||
|
||||
0.1:
|
||||
Initial Release
|
@ -0,0 +1,167 @@
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
These are generic installation instructions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, a file
|
||||
`config.cache' that saves the results of its tests to speed up
|
||||
reconfiguring, and a file `config.log' containing compiler output
|
||||
(useful mainly for debugging `configure').
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If at some point `config.cache'
|
||||
contains results you don't want to keep, you may remove or edit it.
|
||||
|
||||
The file `configure.in' is used to create `configure' by a program
|
||||
called `autoconf'. You only need `configure.in' if you want to change
|
||||
it or regenerate `configure' using a newer version of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system. If you're
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
|
||||
Running `configure' takes a while. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
|
||||
4. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. You can give `configure'
|
||||
initial values for variables by setting them in the environment. Using
|
||||
a Bourne-compatible shell, you can do that on the command line like
|
||||
this:
|
||||
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
||||
|
||||
Or on systems that have the `env' program, you can do it like this:
|
||||
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not supports the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a time
|
||||
in the source code directory. After you have installed the package for
|
||||
one architecture, use `make distclean' before reconfiguring for another
|
||||
architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' will install the package's files in
|
||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||
installation prefix other than `/usr/local' by giving `configure' the
|
||||
option `--prefix=PATH'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||
PATH as the prefix for installing programs and libraries.
|
||||
Documentation and other data files will still use the regular prefix.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' can not figure out
|
||||
automatically, but needs to determine by the type of host the package
|
||||
will run on. Usually `configure' can figure that out, but if it prints
|
||||
a message saying it can not guess the host type, give it the
|
||||
`--host=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name with three fields:
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the host type.
|
||||
|
||||
If you are building compiler tools for cross-compiling, you can also
|
||||
use the `--target=TYPE' option to select the type of system they will
|
||||
produce code for and the `--build=TYPE' option to select the type of
|
||||
system on which you are compiling the package.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Operation Controls
|
||||
==================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Use and save the results of the tests in FILE instead of
|
||||
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
||||
debugging `configure'.
|
||||
|
||||
`--help'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made.
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`--version'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options.
|
||||
|
@ -0,0 +1,22 @@
|
||||
SUBDIRS = $(TOPSUBDIRS)
|
||||
|
||||
$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs
|
||||
cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in ;
|
||||
|
||||
$(top_srcdir)/subdirs:
|
||||
cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs
|
||||
|
||||
$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in
|
||||
@cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4
|
||||
|
||||
MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 configure.files
|
||||
|
||||
package-messages:
|
||||
cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common package-messages
|
||||
$(MAKE) -C po merge
|
||||
|
||||
EXTRA_DIST = admin COPYING configure.in.in
|
||||
|
||||
dist-hook:
|
||||
cd $(top_distdir) && perl admin/am_edit -padmin
|
||||
cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs
|
@ -0,0 +1,10 @@
|
||||
all:
|
||||
@echo "This Makefile is only for the CVS repository"
|
||||
@echo "This will be deleted before making the distribution"
|
||||
@echo ""
|
||||
$(MAKE) -f admin/Makefile.common cvs
|
||||
|
||||
dist:
|
||||
$(MAKE) -f admin/Makefile.common dist
|
||||
|
||||
.SILENT:
|
@ -0,0 +1,763 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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.
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = .
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
|
||||
TODO admin/ChangeLog admin/compile admin/config.guess \
|
||||
admin/config.sub admin/depcomp admin/install-sh \
|
||||
admin/ltmain.sh admin/missing admin/mkinstalldirs admin/ylwrap
|
||||
subdir = .
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno configure.status.lineno
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ARTSCCONFIG = @ARTSCCONFIG@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTODIRS = @AUTODIRS@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CONF_FILES = @CONF_FILES@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DCOPIDL = @DCOPIDL@
|
||||
DCOPIDL2CPP = @DCOPIDL2CPP@
|
||||
DCOPIDLNG = @DCOPIDLNG@
|
||||
DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
IMLIB2_CFLAGS = @IMLIB2_CFLAGS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
|
||||
KCONFIG_COMPILER = @KCONFIG_COMPILER@
|
||||
KDECONFIG = @KDECONFIG@
|
||||
KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
|
||||
KDE_INCLUDES = @KDE_INCLUDES@
|
||||
KDE_LDFLAGS = @KDE_LDFLAGS@
|
||||
KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
|
||||
KDE_MT_LIBS = @KDE_MT_LIBS@
|
||||
KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
|
||||
KDE_PLUGIN = @KDE_PLUGIN@
|
||||
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@
|
||||
KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
|
||||
KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
|
||||
KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCOMPAT = @LIBCOMPAT@
|
||||
LIBCRYPT = @LIBCRYPT@
|
||||
LIBDL = @LIBDL@
|
||||
LIBJPEG = @LIBJPEG@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBPNG = @LIBPNG@
|
||||
LIBPTHREAD = @LIBPTHREAD@
|
||||
LIBRESOLV = @LIBRESOLV@
|
||||
LIBS = @LIBS@
|
||||
LIBSM = @LIBSM@
|
||||
LIBSOCKET = @LIBSOCKET@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBUCB = @LIBUCB@
|
||||
LIBUTIL = @LIBUTIL@
|
||||
LIBZ = @LIBZ@
|
||||
LIB_IMLIB2 = @LIB_IMLIB2@
|
||||
LIB_KAB = @LIB_KAB@
|
||||
LIB_KABC = @LIB_KABC@
|
||||
LIB_KDECORE = @LIB_KDECORE@
|
||||
LIB_KDEPIM = @LIB_KDEPIM@
|
||||
LIB_KDEPRINT = @LIB_KDEPRINT@
|
||||
LIB_KDEUI = @LIB_KDEUI@
|
||||
LIB_KFILE = @LIB_KFILE@
|
||||
LIB_KFM = @LIB_KFM@
|
||||
LIB_KHTML = @LIB_KHTML@
|
||||
LIB_KIO = @LIB_KIO@
|
||||
LIB_KPARTS = @LIB_KPARTS@
|
||||
LIB_KSPELL = @LIB_KSPELL@
|
||||
LIB_KSYCOCA = @LIB_KSYCOCA@
|
||||
LIB_KUTILS = @LIB_KUTILS@
|
||||
LIB_POLL = @LIB_POLL@
|
||||
LIB_QPE = @LIB_QPE@
|
||||
LIB_QT = @LIB_QT@
|
||||
LIB_SMB = @LIB_SMB@
|
||||
LIB_X11 = @LIB_X11@
|
||||
LIB_XCOMPOSITE = @LIB_XCOMPOSITE@
|
||||
LIB_XDAMAGE = @LIB_XDAMAGE@
|
||||
LIB_XEXT = @LIB_XEXT@
|
||||
LIB_XRENDER = @LIB_XRENDER@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MCOPIDL = @MCOPIDL@
|
||||
MEINPROC = @MEINPROC@
|
||||
MOC = @MOC@
|
||||
MSGFMT = @MSGFMT@
|
||||
NOOPT_CFLAGS = @NOOPT_CFLAGS@
|
||||
NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
QTE_NORTTI = @QTE_NORTTI@
|
||||
QT_INCLUDES = @QT_INCLUDES@
|
||||
QT_LDFLAGS = @QT_LDFLAGS@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
TOPSUBDIRS = @TOPSUBDIRS@
|
||||
UIC = @UIC@
|
||||
UIC_TR = @UIC_TR@
|
||||
USER_INCLUDES = @USER_INCLUDES@
|
||||
USER_LDFLAGS = @USER_LDFLAGS@
|
||||
USE_EXCEPTIONS = @USE_EXCEPTIONS@
|
||||
USE_RTTI = @USE_RTTI@
|
||||
USE_THREADS = @USE_THREADS@
|
||||
VERSION = @VERSION@
|
||||
WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMLLINT = @XMLLINT@
|
||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_INCLUDES = @X_INCLUDES@
|
||||
X_LDFLAGS = @X_LDFLAGS@
|
||||
X_PRE_LIBS = @X_PRE_LIBS@
|
||||
X_RPATH = @X_RPATH@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
all_includes = @all_includes@
|
||||
all_libraries = @all_libraries@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
include_ARTS_FALSE = @include_ARTS_FALSE@
|
||||
include_ARTS_TRUE = @include_ARTS_TRUE@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
kde_appsdir = @kde_appsdir@
|
||||
kde_bindir = @kde_bindir@
|
||||
kde_confdir = @kde_confdir@
|
||||
kde_datadir = @kde_datadir@
|
||||
kde_htmldir = @kde_htmldir@
|
||||
kde_icondir = @kde_icondir@
|
||||
kde_includes = @kde_includes@
|
||||
kde_kcfgdir = @kde_kcfgdir@
|
||||
kde_libraries = @kde_libraries@
|
||||
kde_libs_htmldir = @kde_libs_htmldir@
|
||||
kde_libs_prefix = @kde_libs_prefix@
|
||||
kde_locale = @kde_locale@
|
||||
kde_mimedir = @kde_mimedir@
|
||||
kde_moduledir = @kde_moduledir@
|
||||
kde_qtver = @kde_qtver@
|
||||
kde_servicesdir = @kde_servicesdir@
|
||||
kde_servicetypesdir = @kde_servicetypesdir@
|
||||
kde_sounddir = @kde_sounddir@
|
||||
kde_styledir = @kde_styledir@
|
||||
kde_templatesdir = @kde_templatesdir@
|
||||
kde_wallpaperdir = @kde_wallpaperdir@
|
||||
kde_widgetdir = @kde_widgetdir@
|
||||
kdeinitdir = @kdeinitdir@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
qt_includes = @qt_includes@
|
||||
qt_libraries = @qt_libraries@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
x_includes = @x_includes@
|
||||
x_libraries = @x_libraries@
|
||||
xdg_appsdir = @xdg_appsdir@
|
||||
xdg_directorydir = @xdg_directorydir@
|
||||
xdg_menudir = @xdg_menudir@
|
||||
SUBDIRS = $(TOPSUBDIRS)
|
||||
MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 configure.files
|
||||
EXTRA_DIST = admin COPYING configure.in.in
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --gnu \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h1; \
|
||||
$(MAKE) stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
mkdir $(distdir)
|
||||
$(mkdir_p) $(distdir)/admin
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(mkdir_p) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
||||
dist-hook
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& cd $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
fi ; \
|
||||
$(distuninstallcheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
distcleancheck: distclean
|
||||
@if test '$(srcdir)' = . ; then \
|
||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
|
||||
check-am clean clean-generic clean-libtool clean-recursive \
|
||||
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||
dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \
|
||||
distclean-generic distclean-hdr distclean-libtool \
|
||||
distclean-recursive distclean-tags distcleancheck distdir \
|
||||
distuninstallcheck dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
maintainer-clean-recursive mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
|
||||
tags tags-recursive uninstall uninstall-am uninstall-info-am
|
||||
|
||||
|
||||
$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs
|
||||
cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in ;
|
||||
|
||||
$(top_srcdir)/subdirs:
|
||||
cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs
|
||||
|
||||
$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in
|
||||
@cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4
|
||||
|
||||
package-messages:
|
||||
cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common package-messages
|
||||
$(MAKE) -C po merge
|
||||
|
||||
dist-hook:
|
||||
cd $(top_distdir) && perl admin/am_edit -padmin
|
||||
cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs
|
||||
# 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:
|
@ -0,0 +1,12 @@
|
||||
Komposé README
|
||||
|
||||
Command line options:
|
||||
--nosystray Don't show the systray icon
|
||||
--singleshot Display the default view and exit (non daemon mode)
|
||||
|
||||
Keyboard shortcuts:
|
||||
Cancel ESC
|
||||
Navigation between tasks
|
||||
(within the view of the current desktop) arrow, HJKL (vi) or WASD keys or tab key
|
||||
Navigation between virtual desktops Ctrl + arrow keys, HJKL or WASD keys
|
||||
Selection of a window Return or Space
|
@ -0,0 +1,863 @@
|
||||
# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005 Free Software Foundation, Inc.
|
||||
# This file 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.
|
||||
|
||||
# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# AM_AUTOMAKE_VERSION(VERSION)
|
||||
# ----------------------------
|
||||
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
|
||||
|
||||
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||
# -------------------------------
|
||||
# Call AM_AUTOMAKE_VERSION so it can be traced.
|
||||
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.9.6])])
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||||
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||||
#
|
||||
# Of course, Automake must honor this variable whenever it calls a
|
||||
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||||
# depending on how configure is run. This is pretty annoying, since
|
||||
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||||
# source directory, any form will work fine, but in subdirectories a
|
||||
# relative path needs to be adjusted first.
|
||||
#
|
||||
# $ac_aux_dir/missing
|
||||
# fails when called from a subdirectory if $ac_aux_dir is relative
|
||||
# $top_srcdir/$ac_aux_dir/missing
|
||||
# fails if $ac_aux_dir is absolute,
|
||||
# fails when called from a subdirectory in a VPATH build with
|
||||
# a relative $ac_aux_dir
|
||||
#
|
||||
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||
# harmless because $srcdir is `.', but things will broke when you
|
||||
# start a VPATH build or use an absolute $srcdir.
|
||||
#
|
||||
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||||
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||||
# and then we would define $MISSING as
|
||||
# MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# This will work as long as MISSING is not called from configure, because
|
||||
# unfortunately $(top_srcdir) has no meaning in configure.
|
||||
# However there are other variables, like CC, which are often used in
|
||||
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||||
#
|
||||
# Another solution, used here, is to always expand $ac_aux_dir to an
|
||||
# absolute PATH. The drawback is that using absolute paths prevent a
|
||||
# configured tree to be moved without reconfiguration.
|
||||
|
||||
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||||
[dnl Rely on autoconf to set up CDPATH properly.
|
||||
AC_PREREQ([2.50])dnl
|
||||
# expand $ac_aux_dir to an absolute path
|
||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
])
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# serial 7
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])
|
||||
AC_SUBST([$1_FALSE])
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# serial 8
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
case $depmode in
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this.
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
#serial 3
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[for mf in $CONFIG_FILES; do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# So let's grep whole file.
|
||||
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# serial 8
|
||||
|
||||
# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
|
||||
AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
|
||||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# serial 12
|
||||
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
|
||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||
# -----------------------------------------------
|
||||
# The call with PACKAGE and VERSION arguments is the old style
|
||||
# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
||||
# and VERSION should now be passed to AC_INIT and removed from
|
||||
# the call to AM_INIT_AUTOMAKE.
|
||||
# We support both call styles for the transition. After
|
||||
# the next Automake release, Autoconf can make the AC_INIT
|
||||
# arguments mandatory, and then we can depend on a new Autoconf
|
||||
# release and drop the old call support.
|
||||
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||
[AC_PREREQ([2.58])dnl
|
||||
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||
dnl the ones we care about.
|
||||
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||||
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||
# test to see if srcdir already configured
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`" &&
|
||||
test -f $srcdir/config.status; then
|
||||
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||
fi
|
||||
|
||||
# test whether we have cygpath
|
||||
if test -z "$CYGPATH_W"; then
|
||||
if (cygpath --version) >/dev/null 2>/dev/null; then
|
||||
CYGPATH_W='cygpath -w'
|
||||
else
|
||||
CYGPATH_W=echo
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([CYGPATH_W])
|
||||
|
||||
# Define the identity of the package.
|
||||
dnl Distinguish between old-style and new-style calls.
|
||||
m4_ifval([$2],
|
||||
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||
AC_SUBST([PACKAGE], [$1])dnl
|
||||
AC_SUBST([VERSION], [$2])],
|
||||
[_AM_SET_OPTIONS([$1])dnl
|
||||
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||||
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||||
|
||||
_AM_IF_OPTION([no-define],,
|
||||
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
|
||||
|
||||
# Some tools Automake needs.
|
||||
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||
AM_PROG_INSTALL_SH
|
||||
AM_PROG_INSTALL_STRIP
|
||||
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||||
# We need awk for the "check" target. The system "awk" is bad on
|
||||
# some platforms.
|
||||
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||||
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||||
[_AM_PROG_TAR([v7])])])
|
||||
_AM_IF_OPTION([no-dependencies],,
|
||||
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||
[_AM_DEPENDENCIES(CC)],
|
||||
[define([AC_PROG_CC],
|
||||
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||
[_AM_DEPENDENCIES(CXX)],
|
||||
[define([AC_PROG_CXX],
|
||||
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||
])
|
||||
])
|
||||
|
||||
|
||||
# When config.status generates a header, we must update the stamp-h file.
|
||||
# This file resides in the same directory as the config header
|
||||
# that is generated. The stamp files are numbered to have different names.
|
||||
|
||||
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
|
||||
# loop where config.status creates the headers, so we can generate
|
||||
# our stamp files there.
|
||||
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
||||
[# Compute $1's index in $config_headers.
|
||||
_am_stamp_count=1
|
||||
for _am_header in $config_headers :; do
|
||||
case $_am_header in
|
||||
$1 | $1:* )
|
||||
break ;;
|
||||
* )
|
||||
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||||
esac
|
||||
done
|
||||
echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# AM_PROG_INSTALL_SH
|
||||
# ------------------
|
||||
# Define $install_sh.
|
||||
AC_DEFUN([AM_PROG_INSTALL_SH],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
install_sh=${install_sh-"$am_aux_dir/install-sh"}
|
||||
AC_SUBST(install_sh)])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# serial 3
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo done
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# We grep out `Entering directory' and `Leaving directory'
|
||||
# messages which can occur if `w' ends up in MAKEFLAGS.
|
||||
# In particular we don't look at `^make:' because GNU make might
|
||||
# be invoked under some other name (usually "gmake"), in which
|
||||
# case it prints its new name instead of `make'.
|
||||
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
fi
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# serial 4
|
||||
|
||||
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||
# ------------------------------
|
||||
AC_DEFUN([AM_MISSING_PROG],
|
||||
[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||||
$1=${$1-"${am_missing_run}$2"}
|
||||
AC_SUBST($1)])
|
||||
|
||||
|
||||
# AM_MISSING_HAS_RUN
|
||||
# ------------------
|
||||
# Define MISSING if not defined so far and test if it supports --run.
|
||||
# If it does, set am_missing_run to use it, otherwise, to nothing.
|
||||
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# Use eval to expand $SHELL
|
||||
if eval "$MISSING --run true"; then
|
||||
am_missing_run="$MISSING --run "
|
||||
else
|
||||
am_missing_run=
|
||||
AC_MSG_WARN([`missing' script is too old or missing])
|
||||
fi
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# AM_PROG_MKDIR_P
|
||||
# ---------------
|
||||
# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
|
||||
#
|
||||
# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
|
||||
# created by `make install' are always world readable, even if the
|
||||
# installer happens to have an overly restrictive umask (e.g. 077).
|
||||
# This was a mistake. There are at least two reasons why we must not
|
||||
# use `-m 0755':
|
||||
# - it causes special bits like SGID to be ignored,
|
||||
# - it may be too restrictive (some setups expect 775 directories).
|
||||
#
|
||||
# Do not use -m 0755 and let people choose whatever they expect by
|
||||
# setting umask.
|
||||
#
|
||||
# We cannot accept any implementation of `mkdir' that recognizes `-p'.
|
||||
# Some implementations (such as Solaris 8's) are not thread-safe: if a
|
||||
# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
|
||||
# concurrently, both version can detect that a/ is missing, but only
|
||||
# one can create it and the other will error out. Consequently we
|
||||
# restrict ourselves to GNU make (using the --version option ensures
|
||||
# this.)
|
||||
AC_DEFUN([AM_PROG_MKDIR_P],
|
||||
[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
|
||||
# We used to keeping the `.' as first argument, in order to
|
||||
# allow $(mkdir_p) to be used without argument. As in
|
||||
# $(mkdir_p) $(somedir)
|
||||
# where $(somedir) is conditionally defined. However this is wrong
|
||||
# for two reasons:
|
||||
# 1. if the package is installed by a user who cannot write `.'
|
||||
# make install will fail,
|
||||
# 2. the above comment should most certainly read
|
||||
# $(mkdir_p) $(DESTDIR)$(somedir)
|
||||
# so it does not work when $(somedir) is undefined and
|
||||
# $(DESTDIR) is not.
|
||||
# To support the latter case, we have to write
|
||||
# test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
|
||||
# so the `.' trick is pointless.
|
||||
mkdir_p='mkdir -p --'
|
||||
else
|
||||
# On NextStep and OpenStep, the `mkdir' command does not
|
||||
# recognize any option. It will interpret all options as
|
||||
# directories to create, and then abort because `.' already
|
||||
# exists.
|
||||
for d in ./-p ./--version;
|
||||
do
|
||||
test -d $d && rmdir $d
|
||||
done
|
||||
# $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
|
||||
if test -f "$ac_aux_dir/mkinstalldirs"; then
|
||||
mkdir_p='$(mkinstalldirs)'
|
||||
else
|
||||
mkdir_p='$(install_sh) -d'
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([mkdir_p])])
|
||||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# serial 3
|
||||
|
||||
# _AM_MANGLE_OPTION(NAME)
|
||||
# -----------------------
|
||||
AC_DEFUN([_AM_MANGLE_OPTION],
|
||||
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||||
|
||||
# _AM_SET_OPTION(NAME)
|
||||
# ------------------------------
|
||||
# Set option NAME. Presently that only means defining a flag for this option.
|
||||
AC_DEFUN([_AM_SET_OPTION],
|
||||
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
|
||||
|
||||
# _AM_SET_OPTIONS(OPTIONS)
|
||||
# ----------------------------------
|
||||
# OPTIONS is a space-separated list of Automake options.
|
||||
AC_DEFUN([_AM_SET_OPTIONS],
|
||||
[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||
|
||||
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
||||
# -------------------------------------------
|
||||
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# serial 4
|
||||
|
||||
# AM_SANITY_CHECK
|
||||
# ---------------
|
||||
AC_DEFUN([AM_SANITY_CHECK],
|
||||
[AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftest.file
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
# arguments. Must try -L first in case configure is actually a
|
||||
# symlink; some systems play weird games with the mod time of symlinks
|
||||
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||
# directory).
|
||||
if (
|
||||
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
|
||||
if test "$[*]" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t $srcdir/configure conftest.file`
|
||||
fi
|
||||
rm -f conftest.file
|
||||
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||
|
||||
# If neither matched, then we have a broken ls. This can happen
|
||||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
|
||||
test "$[2]" = conftest.file
|
||||
)
|
||||
then
|
||||
# Ok.
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||
Check your system clock])
|
||||
fi
|
||||
AC_MSG_RESULT(yes)])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# AM_PROG_INSTALL_STRIP
|
||||
# ---------------------
|
||||
# One issue with vendor `install' (even GNU) is that you can't
|
||||
# specify the program used to strip binaries. This is especially
|
||||
# annoying in cross-compiling environments, where the build's strip
|
||||
# is unlikely to handle the host's binaries.
|
||||
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||||
# always use install-sh in `make install-strip', and initialize
|
||||
# STRIPPROG with the value of the STRIP variable (set by the user).
|
||||
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||||
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
# Installed binaries are usually stripped using `strip' when the user
|
||||
# run `make install-strip'. However `strip' might not be the right
|
||||
# tool to use in cross-compilation environments, therefore Automake
|
||||
# will honor the `STRIP' environment variable to overrule this program.
|
||||
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
||||
if test "$cross_compiling" != no; then
|
||||
AC_CHECK_TOOL([STRIP], [strip], :)
|
||||
fi
|
||||
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Check how to create a tarball. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file 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.
|
||||
|
||||
# serial 2
|
||||
|
||||
# _AM_PROG_TAR(FORMAT)
|
||||
# --------------------
|
||||
# Check how to create a tarball in format FORMAT.
|
||||
# FORMAT should be one of `v7', `ustar', or `pax'.
|
||||
#
|
||||
# Substitute a variable $(am__tar) that is a command
|
||||
# writing to stdout a FORMAT-tarball containing the directory
|
||||
# $tardir.
|
||||
# tardir=directory && $(am__tar) > result.tar
|
||||
#
|
||||
# Substitute a variable $(am__untar) that extract such
|
||||
# a tarball read from stdin.
|
||||
# $(am__untar) < result.tar
|
||||
AC_DEFUN([_AM_PROG_TAR],
|
||||
[# Always define AMTAR for backward compatibility.
|
||||
AM_MISSING_PROG([AMTAR], [tar])
|
||||
m4_if([$1], [v7],
|
||||
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
|
||||
[m4_case([$1], [ustar],, [pax],,
|
||||
[m4_fatal([Unknown tar format])])
|
||||
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||
# Loop over all known methods to create a tar archive until one works.
|
||||
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||||
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||
# Do not fold the above two line into one, because Tru64 sh and
|
||||
# Solaris sh will not grok spaces in the rhs of `-'.
|
||||
for _am_tool in $_am_tools
|
||||
do
|
||||
case $_am_tool in
|
||||
gnutar)
|
||||
for _am_tar in tar gnutar gtar;
|
||||
do
|
||||
AM_RUN_LOG([$_am_tar --version]) && break
|
||||
done
|
||||
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||
am__untar="$_am_tar -xf -"
|
||||
;;
|
||||
plaintar)
|
||||
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||
# ustar tarball either.
|
||||
(tar --version) >/dev/null 2>&1 && continue
|
||||
am__tar='tar chf - "$$tardir"'
|
||||
am__tar_='tar chf - "$tardir"'
|
||||
am__untar='tar xf -'
|
||||
;;
|
||||
pax)
|
||||
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||
am__untar='pax -r'
|
||||
;;
|
||||
cpio)
|
||||
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||
am__untar='cpio -i -H $1 -d'
|
||||
;;
|
||||
none)
|
||||
am__tar=false
|
||||
am__tar_=false
|
||||
am__untar=false
|
||||
;;
|
||||
esac
|
||||
|
||||
# If the value was cached, stop now. We just wanted to have am__tar
|
||||
# and am__untar set.
|
||||
test -n "${am_cv_prog_tar_$1}" && break
|
||||
|
||||
# tar/untar a dummy directory, and stop if the command works
|
||||
rm -rf conftest.dir
|
||||
mkdir conftest.dir
|
||||
echo GrepMe > conftest.dir/file
|
||||
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||
rm -rf conftest.dir
|
||||
if test -s conftest.tar; then
|
||||
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||
fi
|
||||
done
|
||||
rm -rf conftest.dir
|
||||
|
||||
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||
AC_SUBST([am__tar])
|
||||
AC_SUBST([am__untar])
|
||||
]) # _AM_PROG_TAR
|
||||
|
||||
m4_include([acinclude.m4])
|
@ -0,0 +1,30 @@
|
||||
/Doxyfile.global/1.2/Tue Sep 13 17:41:39 2005//
|
||||
/Makefile.common/1.2/Tue Sep 13 17:41:39 2005//
|
||||
/acinclude.m4.in/1.2/Tue Sep 13 17:41:39 2005//
|
||||
/am_edit/1.2/Tue Sep 20 19:32:46 2005//
|
||||
/conf.change.pl/1.2/Tue Sep 13 17:41:39 2005//
|
||||
/config.guess/1.2/Tue Sep 13 17:41:39 2005//
|
||||
/config.sub/1.2/Tue Sep 13 17:41:39 2005//
|
||||
/configure.in.bot.end/1.2/Tue Sep 13 17:41:40 2005//
|
||||
/cvs.sh/1.2/Tue Sep 13 17:41:39 2005//
|
||||
/debianrules/1.2/Tue Sep 13 17:41:39 2005//
|
||||
/detect-autoconf.sh/1.2/Tue Sep 13 17:41:39 2005//
|
||||
/libtool.m4.in/1.2/Tue Sep 13 17:41:40 2005//
|
||||
/ltmain.sh/1.2/Tue Sep 13 17:41:40 2005//
|
||||
/ChangeLog/1.1.1.1/Tue Sep 13 17:41:39 2005//
|
||||
/Doxyfile.am/1.1.1.1/Tue Sep 13 17:41:39 2005//
|
||||
/bcheck.pl/1.1.1.1/Tue Sep 13 17:41:39 2005//
|
||||
/compile/1.1.1.1/Tue Sep 13 17:41:39 2005//
|
||||
/config.pl/1.1.1.1/Tue Sep 13 17:41:39 2005//
|
||||
/configure.in.min/1.1.1.1/Tue Sep 13 17:41:39 2005//
|
||||
/cvs-clean.pl/1.1.1.1/Tue Sep 13 17:41:39 2005//
|
||||
/depcomp/1.1.1.1/Tue Sep 13 17:41:40 2005//
|
||||
/install-sh/1.1.1.1/Tue Sep 13 17:41:40 2005//
|
||||
/missing/1.1.1.1/Tue Sep 13 17:41:39 2005//
|
||||
/mkinstalldirs/1.1.1.1/Tue Sep 13 17:41:39 2005//
|
||||
/nmcheck/1.1.1.1/Tue Sep 13 17:41:39 2005//
|
||||
/ylwrap/1.1.1.1/Tue Sep 13 17:41:39 2005//
|
||||
/deps.am/1.1/Tue Sep 13 17:41:40 2005//
|
||||
/oldinclude.m4.in/1.1/Tue Sep 13 17:41:39 2005//
|
||||
/pkg.m4.in/1.1/Tue Sep 13 17:41:39 2005//
|
||||
D
|
@ -0,0 +1 @@
|
||||
kompose/admin
|
@ -0,0 +1 @@
|
||||
oisch@cvs.berlios.de:/cvsroot/kompose
|
@ -0,0 +1,761 @@
|
||||
2002-10-03 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* made config.h.bot obsolete
|
||||
|
||||
2002-04-26 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in removed bogus message
|
||||
|
||||
2001-11-07 Walter Tasin <tasin@kdevelop.org>
|
||||
|
||||
* now #MIN_CONFIG tag takes parameters for KDE_USE_QT, too.
|
||||
e.g. #MIN_CONFIG(2.2) for qt 2.2 usage
|
||||
|
||||
2000-11-30 David Faure <faure@kde.org>
|
||||
|
||||
* acinclude.m4.in: Added kde_moduledir which points to $prefix/lib/kde2/
|
||||
|
||||
2000-07-24 Alex Zepeda <jazepeda@pacbell.net>
|
||||
|
||||
* acinclude.m4.in: Remove the test for malloc.h
|
||||
|
||||
2000-04-05 Michael Matz <matz@ifh.de>
|
||||
|
||||
* config.pl : added kludge for compiling regexp's even if
|
||||
perl < 5.005 is installed
|
||||
* conf.change.pl : added support for autoconf 2.14.1
|
||||
|
||||
2000-03-27 David Faure <faure@kde.org>
|
||||
|
||||
* acinclude.m4.in, Makefile.common: changed inst-apps semantics
|
||||
If present, only the subdirs it lists will be configured and compiled.
|
||||
If absent, then subdirs is used (and inst-apps isn't generated anymore)
|
||||
|
||||
2000-03-22 David Faure <faure@kde.org>
|
||||
|
||||
* am_edit: Added support for KDE_ICON = AUTO
|
||||
|
||||
2000-03-18 David Faure <faure@kde.org>
|
||||
|
||||
* Makefile.common: Rewrote the list-of-Makefiles generation to make it
|
||||
simpler and nicer, using create_makefiles' way of doing it.
|
||||
Added support for COMPILE_LAST and COMPILE_FIRST in toplevel Makefile.am
|
||||
|
||||
2000-01-05 David Faure <faure@kde.org>
|
||||
|
||||
* Makefile.common: hacked around autoconf bug (setting INSTALL to ".."
|
||||
when calling a subconfigure and INSTALL is already set).
|
||||
|
||||
1999-12-15 Waldo Bastian <bastian@kde.org>
|
||||
|
||||
* acinclude.m4.in: Test whether Qt compiles AND LINKS without flags.
|
||||
|
||||
1999-06-24 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* am_edit: generate correct Makefile entries for kde-i18n toplevel directories
|
||||
* am_edit:
|
||||
|
||||
1999-06-14 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* am_edit: remove idl generated files on make clean
|
||||
|
||||
1999-06-09 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* am_edit: skipping programs with variables in sources for final
|
||||
|
||||
1999-06-07 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* am_edit: added support for idl files
|
||||
|
||||
1999-06-02 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* Makefile.common: preserve comments in .pot files to make it
|
||||
possible for programmers and translators to comment them
|
||||
|
||||
1999-06-02 Simon Hausmann <hausmann@kde.org>
|
||||
|
||||
* acinclude.m4.in: added kde_servicetypesdir
|
||||
|
||||
1999-06-02 David Faure <faure@kde.org>
|
||||
|
||||
* acinclude.m4.in: removed LIB_KFM and LIB_KDEUTIL aliases
|
||||
|
||||
1999-05-28 Simon Hausmann <hausmann@kde.org>
|
||||
|
||||
* acinclude.m4.in: added kde_servicesdir
|
||||
|
||||
1999-05-27 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* am_edit: lots of changes for better support of --enable-final
|
||||
|
||||
1999-05-22 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: added support for --with-dmalloc
|
||||
|
||||
1999-05-19 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: added support for --enable-final
|
||||
|
||||
* am_edit: added support for --enable-final
|
||||
|
||||
1999-05-06 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: change the meaning of --disable-debug
|
||||
|
||||
1999-05-04 Helge Deller <deller@gmx.de>
|
||||
|
||||
* acinclude.m4.in: the test for the X-includes/directories failed,
|
||||
when compile & link work without special directories (as on HP-UX).
|
||||
|
||||
1999-04-20 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* am_edit: adding DESTDIR replacement for rm and uninstall-local
|
||||
too. Seems very useless, but makes testing for uninstall easier
|
||||
|
||||
1999-04-01 David Faure <faure@kde.org>
|
||||
|
||||
* acinclude.m4.in: Added -lkfile to $(LIB_KIO)
|
||||
|
||||
1999-03-30 David Faure <faure@kde.org>
|
||||
|
||||
* acinclude.m4.in: Added AC_CHECK_KDEMAXPATHLEN, which defines KDEMAXPATHLEN.
|
||||
|
||||
1999-03-29 David Faure <faure@kde.org>
|
||||
|
||||
* acinclude.m4.in: added LIB_X11 to XPMLIB and GLLIB, because
|
||||
on SCO, they need it _after_ themselves.
|
||||
|
||||
1999-03-28 David Faure <faure@kde.org>
|
||||
|
||||
* acinclude.m4.in: added LIB_KFM to LIB_KAB alias
|
||||
|
||||
1999-03-26 David Faure <faure@kde.org>
|
||||
|
||||
* acinclude.m4.in: made LIB_KFILE use LIB_KIO instead of LIB_KFM
|
||||
added LIB_KFORMULA
|
||||
|
||||
1999-03-20 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: check for libXext - for Russel :)
|
||||
|
||||
1999-03-16 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclud3.m4.in: extend the MICO test with a list of possible
|
||||
places where to find CORBA.h
|
||||
|
||||
1999-03-15 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: move $QTINC and $QTLIB in search path
|
||||
|
||||
1999-03-14 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* am_edit: install-root is obsolute. Use DESTDIR always
|
||||
|
||||
1999-03-03 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: fixing a bug, that $QTDIR was taken before --with-qt*
|
||||
* acinclude.m4.in: added KDE_USE_QT, that you can choose if to
|
||||
use QT 2.0 or KDE 1.0
|
||||
|
||||
* Makefile.common: added target package-merge
|
||||
|
||||
* am_edit: many fixes to the POFILES handeling of am_edit
|
||||
|
||||
1999-03-02 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: first look at libjpeg6b (from kdesupport) then
|
||||
for libjpeg
|
||||
|
||||
* config.*, libtool.*: update to the latest FSF tools
|
||||
|
||||
1999-02-23 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: error when Sparc CC is used. Better use it in
|
||||
configure and tell him the story then letting him find it while
|
||||
compiling
|
||||
|
||||
* acinclude.m4.in: adding KDE_CHECK_EXTRA_LIBS to all possible tests,
|
||||
so that --with-extra-includes is used when needed.
|
||||
|
||||
* acinclude.m4.in: configure looks for giflib30, so it should say so
|
||||
|
||||
* acinclude.m4.in: don't overwrite x include parameters. Patch by
|
||||
Ari Lemmke <ari.lemmke@regex.fi> (bug report 741)
|
||||
|
||||
1999-02-20 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: fixing KDE_CHECK_PATHS for rechecking. In case
|
||||
of defaults (kdelibs) configure didn't cache the results
|
||||
|
||||
1999-02-18 David Faure <faure@kde.org>
|
||||
|
||||
* acinclude.m4.in: added AC_CHECK_S_ISSOCK, to fix #706.
|
||||
|
||||
1999-02-17 David Faure <faure@kde.org>
|
||||
|
||||
* acinclude.m4.in: added AC_CHECK_RANDOM, just like
|
||||
AC_CHECK_USLEEP, to enable the fake if necessary.
|
||||
|
||||
1999-02-13 Kurt Granroth <granroth@kde.org>
|
||||
|
||||
* acinclude.m4.in: look for QT-2.0
|
||||
|
||||
1999-02-05 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: in macro KDE_FIND_PATH treat user given dirs
|
||||
and $PATH dirs the same. Added seperate test for to find binary
|
||||
($5) to replace findperl
|
||||
|
||||
1999-01-28 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* automoc: added patch by jbb to be a little bit more precise about
|
||||
the number of sourcefiles that include the moc file if it's != 1.
|
||||
Besides that automoc will fail with exit code, so the Makefile.cvs
|
||||
process does stop in case a problem accoured.
|
||||
|
||||
* automoc: don't hardcode header suffix, but allow *.h, *.hh and *.H
|
||||
|
||||
1999-01-27 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: try qobjcoll.h and qapplication.h before saying
|
||||
OK to qt headers. (I could kill SuSE for splitting into qt-dev
|
||||
and qt-compat)
|
||||
|
||||
1991-01-23 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* automoc: added fixes by JB <jb.nz@writeme.com>
|
||||
|
||||
1999-01-21 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* automoc: added --help and --path (for use in dist-hook)
|
||||
|
||||
1999-01-20 Alex Zepeda <garbanzo@hooked.net>
|
||||
|
||||
* ltconfig: added entries for FreeBSD 4.x
|
||||
|
||||
1999-01-19 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* automoc: added a distclean-metasources target which deletes all
|
||||
moc files and let distclean depend on it
|
||||
|
||||
1999-01-18 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* automoc: several fixes (ignore comment lines + join lines
|
||||
with \ )
|
||||
|
||||
* automoc: support META_INCLUDES in case the header files are
|
||||
not in the same dir as the sources.
|
||||
|
||||
1999-01-17 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* automoc: several fixes.
|
||||
|
||||
1999-01-16 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* automoc: added support for included MOC files.
|
||||
|
||||
* acinclude.m4.in: use srcdir for the subdirs stuff as well
|
||||
|
||||
* automoc: added better command line parsing and some preparation
|
||||
for handling "normal" moc files
|
||||
|
||||
* acinclude.m4.in: added aliases for libkio and libkdeutil
|
||||
|
||||
1999-01-15 Harri Porten <porten@kde.org>
|
||||
|
||||
* automoc: Carved in stone syntax for Makefile.in:
|
||||
{program}_METASOURCES = USE_AUTOMOC [{suffix}]
|
||||
|
||||
1999-01-15 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* Makefile.common: set top_srcdir to .
|
||||
|
||||
1999-01-14 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: don't use config.h.bot any longer
|
||||
|
||||
1999-01-08 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: added KDE_CHECK_NEWLIBS
|
||||
|
||||
* acinclude.m4.in: test for Qt even if both --with-qt-headers and
|
||||
--with-qt-libraries are given. They may be wrong.
|
||||
|
||||
1999-01-06 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: change the MOC test so it can be used for other
|
||||
tools as well
|
||||
|
||||
1998-12-28 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: look for QT-1.42 since kpanel needs it
|
||||
|
||||
1998-12-27 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: added /usr/lib for libpython test
|
||||
|
||||
* acinclude.m4.in: take my email address out of it and added a
|
||||
reference to www.kde.org/faq
|
||||
|
||||
* acinclude.m4.in: use Qt >= 1.4
|
||||
|
||||
* acinclude.m4.in: added KDE_CHECK_NAMESPACES
|
||||
|
||||
1998-12-18 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: test for directories to exist before saying yes
|
||||
to compilation :)
|
||||
|
||||
1998-12-14 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: added CPLUSPLUS for the kimgio test. It's
|
||||
only important for shaman right now, but at least there it is :)
|
||||
|
||||
1998-12-12 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* Makefile.cvs: added common Makefile.cvs
|
||||
|
||||
* acinclude.m4.in: Thomas.Schwarz@pro-sieben.de reported a very ugly
|
||||
bug in AC_PROG_CXXCPP, so I added my own version
|
||||
|
||||
* acinclude.m4.in: added KDE_CREATE_SUBDIRS_LIST to simplify
|
||||
most toplevel configures
|
||||
|
||||
1998-12-11 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: added call to AC_PROG_CXXCPP. Not really sure why
|
||||
it never caused problems
|
||||
|
||||
* acinclude.m4.in: moved LIBTIFF alias
|
||||
|
||||
* acinclude.m4.in: only test for the existance of libkimgio if the
|
||||
user wants to. For 99% of the applications it doesn't matter if
|
||||
configure can find libkimgio :)
|
||||
|
||||
1998-12-10 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: some changes to the python check to handle $LIBDL
|
||||
|
||||
1998-12-09 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: make Alex's tiff test a real one
|
||||
|
||||
* acinclude.m4.in: fix the LIB_TIFF alias to really expand
|
||||
|
||||
1998-12-08 Alex Zepeda <garbanzo@hooked.net>
|
||||
|
||||
* acinclude.m4.in: Fix tiff test to use libtiff34 if it exists.
|
||||
This is what the FreeBSD port installs to for whatever reason.
|
||||
|
||||
* acinclude.m4.in: s/kde/KDE/ (at least in some of the
|
||||
descriptions, obviously no variable names were touched.
|
||||
|
||||
1998-12-08 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: moved the LIB_QT alias to the Qt check
|
||||
|
||||
* acinclude.m4.in: unset KDEDIR before running conftest
|
||||
|
||||
* acinclude.m4.in: fixed mean typo
|
||||
|
||||
* acinclude.m4.in: added the copyright header for the gettext
|
||||
tests, so that people know we're legal ;)
|
||||
|
||||
* acinclude.m4.in: set language to C++ before testing QIMGIO
|
||||
|
||||
1998-12-07 Alex Zepeda <garbanzo@hooked.net>
|
||||
|
||||
* acinclude.m4.in: Fix PNG test to use correct ANSI C code, and
|
||||
not trip up gcc.
|
||||
|
||||
1998-12-07 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: don't hardcode -ldl
|
||||
|
||||
* acinclude.m4.in: move the LIB_X11 alias to the X test to make it
|
||||
useful for kdesupport as well
|
||||
|
||||
* acinclude.m4.in: give the word CHECK_KIMGIO a meaning in really
|
||||
checking for it
|
||||
|
||||
* acinclude.m4.in: simple fix to prevent kimgio test from compiling
|
||||
KDE application in kdelibs
|
||||
|
||||
1998-12-05 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: let KDE_CHECK_KIMGIO depend on AC_PATH_KDE,
|
||||
otherwise most tests fail. It didn't mean anything to 90% of the
|
||||
packages since they test for KDE before kimgio, but for shaman
|
||||
it does
|
||||
|
||||
* ltconfig: the real fix for the Solaris && gcc problem.
|
||||
Thanks Kurt for reporting it and Alexandre for fixing it :)
|
||||
|
||||
1998-12-04 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* libtool.*: update again
|
||||
|
||||
* acinclude.m4.in: changed the function to test for libnsl to
|
||||
inet_ntoa since UnixWare 7's version did not have gethostbyname,
|
||||
but needs libnsl
|
||||
|
||||
1998-12-02 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: fixed the MOC test (again) to use the PATH variable
|
||||
correctly (with the correct seperator)
|
||||
|
||||
* config.guess: update from the soon to be released autoconf-2.13
|
||||
|
||||
1998-12-01 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: fixes for the MOC test. Use PATH now when found
|
||||
|
||||
1998-11-30 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: extended the MOC test. It checks now for the
|
||||
first line of the output of "moc --help" and looks for Qt in it.
|
||||
|
||||
1998-11-27 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* ltconfig: another libtool update. Fixes an ugly bug on Solaris,
|
||||
when GNU ld is in path before Solaris ld, but gcc uses the later
|
||||
|
||||
1998-11-26 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: made the Qt test more advance to check for qt
|
||||
1.41 - I still need to make it better, but there shouldn't be too
|
||||
many qt releases in a row, would there? ;)
|
||||
|
||||
* ltconfig: libtool update with better BSD/OS support
|
||||
|
||||
1998-11-22 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* ltconfig: cool - libtool uses g++ now to link libraries on Solaris.
|
||||
This means, static objects become usuable on that plattforms (some
|
||||
others as well).
|
||||
|
||||
1998-11-20 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* ltmain.sh: updated libtool from their CVS - fixes bugs we haven't
|
||||
found and adds some more features, that we do not need ;-)
|
||||
|
||||
1998-11-19 David Faure <faure@kde.org>
|
||||
|
||||
* acinclude.m4.in: added AC_CHECK_UTMP_FILE, taken from kdebase
|
||||
|
||||
1998-11-16 Harri Porten <porten@kde.org>
|
||||
|
||||
* automoc: take care of "ar" object files, too.
|
||||
|
||||
1998-11-16 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* libtool.m4.in: revised my --silent patch. The solution
|
||||
Alexandre suggested is much better.
|
||||
|
||||
1998-11-15 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* ltconfig.in: done some tweakings to support -export-dynamic
|
||||
with egcs
|
||||
|
||||
* config.sub: wow - BeOS support :)
|
||||
|
||||
1998-11-14 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: don't use rpath for test program, if rpath is
|
||||
disabled for applications
|
||||
|
||||
* ltconfig: patched libtool to make it silent without making
|
||||
ltconfig silent
|
||||
|
||||
* acinclude.m4.in: make libtool silent again
|
||||
|
||||
* libtool.m4.in: update to libtool-981114 (untested stuff, but
|
||||
we have to test it to make it tested - sounds that logical? :-)
|
||||
|
||||
* libtool.m4.in: moved the self stricked libtool tests to "our"
|
||||
file.
|
||||
|
||||
* acinclude.m4.in: moved ChangeLog of kdebase which I used to
|
||||
maintain acinclude.m4.in logs to kde-common/admin. Hopefully I
|
||||
will maintain it more often from now on :)
|
||||
|
||||
1998-07-27 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: fixed some things in the MOC test
|
||||
|
||||
* acinclude.m4.in: fixed this damn msgfmt test
|
||||
|
||||
1998-06-02 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: ignore msgfmt, if not GNU gettext
|
||||
|
||||
1998-05-28 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: fixed KDE_CHECK_STL. Checks for HP and SGI type
|
||||
|
||||
* acinclude.m4.in: embraced every variable with "" to make
|
||||
it consistent
|
||||
|
||||
* acinclude.m4.in: various fixes for the koffice checks
|
||||
(mico, ministl and python)
|
||||
|
||||
1998-05-16 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: don't use KDE_CHECK_QT_DIRECT, when
|
||||
--with-qt-libs are given
|
||||
|
||||
1998-04-21 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: cool, I found the trick to suppress the ls
|
||||
errors
|
||||
|
||||
1998-04-20 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: rewrote the qt checking test, since it
|
||||
didn't work under FreeBSD, since it relied on the .so link.
|
||||
The new version is a little bit buggy, but I need some testing
|
||||
to make it perfect
|
||||
|
||||
* acinclude.m4.in: fixed the side effects of the PAM test
|
||||
|
||||
1998-04-18 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: hopefully fixed the PAM test (I rewrote it)
|
||||
|
||||
1998-04-16 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: extended the getsockname test inspired
|
||||
by a patch by Martin Baulig
|
||||
|
||||
* configure.in: added test for utmp file
|
||||
|
||||
* acinclude.m4.in: made --without-pam default
|
||||
|
||||
|
||||
1998-04-06 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: don't test compiling, linking, running in
|
||||
one step. This proved to be too dangerous for my mail box.
|
||||
|
||||
1998-03-21 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* libtool.m4.in: created some new macros to work around this
|
||||
ugly (because long) help of configure --enable-shared/static
|
||||
|
||||
1998-03-05 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: set language to C++ before trying the ksize_t
|
||||
test
|
||||
|
||||
* configure.in: sorted the Makefile entries alphabeticly (and all
|
||||
together: we love xemacs! we love xemacs! ;)
|
||||
|
||||
* configure.in: added sk
|
||||
|
||||
* acinclude.m4.in: substitute x_libraries to fix the empty -rpath
|
||||
|
||||
1998-03-03 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: add a rpath for every shared library, that is
|
||||
linked too (especially X11 libraries)
|
||||
|
||||
Tue Feb 24 22:04:59 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: added kde_sounddir and set kde_minidir to
|
||||
kde_icondir/mini to break not too much
|
||||
|
||||
Sun Feb 15 18:25:50 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* configure.in: added bugfix by Bob Miller <kbob@engr.sgi.com>
|
||||
(correct reset of IFS)
|
||||
|
||||
Wed Feb 11 00:53:11 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* configure.in: made shadow under Linux default, since the
|
||||
binaries will work also under non-shadow systems. The only problem
|
||||
left is PAM, so I disabled shadow in case, PAM is present
|
||||
|
||||
Tue Feb 10 16:46:32 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* configure.in: added test for nice to find out, if the option
|
||||
-nice works for the screensavers
|
||||
|
||||
* acinclude.m4.in: port to LynxOS. For this I moved all library
|
||||
search routines in KDE_MISC_TESTS, so I don't need to write this
|
||||
in every package
|
||||
|
||||
* README: some grammar fixes
|
||||
|
||||
* acinclude.m4.in: search for the libs in the exec_prefix, when
|
||||
it's present
|
||||
|
||||
Sun Feb 8 14:07:23 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: updated all packages
|
||||
|
||||
* libtool.m4.in: applied patch for libtool.m4.in to show the
|
||||
correct default for shared and static
|
||||
|
||||
|
||||
Sat Feb 7 10:56:00 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* configure.in: good news - KDE is relocatable again.
|
||||
|
||||
* libtool.m4.in: updated to latest libtool 1.0i
|
||||
|
||||
Fri Feb 6 21:26:51 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: added a AC_PROVIDE for AC_PROG_CC and
|
||||
AC_PROG_CPP to KDE_CHECK_COMPILERS
|
||||
|
||||
Thu Feb 5 16:27:47 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: put $QTDIR/bin before /usr/bin in the path to
|
||||
look for moc. I don't know why, but I got a report, that configure
|
||||
found /usr/bin/moc under Solaris
|
||||
|
||||
Fri Jan 30 15:47:50 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: export LIBRARY_PATH after reset to the saved
|
||||
value
|
||||
|
||||
* acinclude.m4.in: unset the LIBRARY_PATH to get a relieable
|
||||
result when trying to find, if Qt compiles without -L
|
||||
|
||||
Sat Jan 24 00:45:52 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: fixed another bug in AC_PATH_KDE
|
||||
|
||||
Thu Jan 22 14:46:15 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* configure.in: fixed an ugly bug in AC_BASE_PATH_KDE
|
||||
|
||||
* kappfinder/kappfinder.in: let kappfinder create by configure to
|
||||
allow the use of the kde_ paths
|
||||
|
||||
Wed Jan 21 22:19:35 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in: - added a install_root prefix to all paths, if
|
||||
set, to enable package managers to move the whole installation at once
|
||||
- added --with-install-root to set the install_root prefix
|
||||
|
||||
Tue Jan 20 22:41:04 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* configure.in: added NOOPT_CXXFLAGS to allow kioslave to be
|
||||
compiled without -O2
|
||||
|
||||
Mon Jan 19 21:55:21 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* configure.in: some little fixes for the Makefiles
|
||||
|
||||
* acinclude.m4.in: --prefix will no longer override the search for
|
||||
libraries. If they are present somewhere, they are used (through
|
||||
the methodes in KApplication)
|
||||
|
||||
Mon Jan 12 00:30:36 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in fixed an ugly bug, that accoured, when
|
||||
qt_libraries is not set (empty/equals X11/not necessary)
|
||||
|
||||
* acinclude.m4.in moved the remove of the files after the error
|
||||
detection
|
||||
|
||||
|
||||
Sun Jan 11 17:27:53 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* acinclude.m4.in added a new macro KDE_CHECK_QT_DIRECT to unset
|
||||
the Qt library path, if a Qt program compiles without them
|
||||
|
||||
* acinclude.m4.in added a return value in the CREATE_KFSSTND
|
||||
macro. Perhaps this has caused the problems
|
||||
|
||||
Sat Jan 10 17:40:44 1998 Stephan Kulow <coolo@kde.org>
|
||||
|
||||
* ChangeLog started to maintain a ChangeLog file again
|
||||
* acinclude.m4.in the AC_CREATE_KFSSTND to get better debug output
|
||||
to find the problem
|
||||
|
||||
|
||||
Old logs, Stephan Kulow made:
|
||||
|
||||
0.1 : first steps with libkde
|
||||
0.2 : first release with libkde, khtmlw, kdehelp, acli, kwm, kpanel
|
||||
0.3 : added kfm and bugfixes
|
||||
0.4 : updated khtmlw, kdehelp, kwm, changed install in all subdirs
|
||||
0.5 : support libtool (chooseable shared libs)
|
||||
0.6 : split libkde in kdecore and kdeui
|
||||
0.6.1 : Bugfixes
|
||||
0.7 : added code from Janos Farkas (configure)
|
||||
: added @{kde,qt}_{includes,libraries}@
|
||||
0.7.1: Bugfixes
|
||||
0.7.2: Bugfixes
|
||||
0.7.3: added @all_includes@ and @all_libraries@
|
||||
replaced all incompatible flags like $(CC) and -DHAVE_UNISTD_H
|
||||
0.7.4: changed support for libkde (back in it's own)
|
||||
added kpat
|
||||
updated kpanel, kwm, kghostview
|
||||
0.8: removed a bug in kghostview
|
||||
lifted installation process of several apps
|
||||
splitt kdebase into kdelibs and kdeapps
|
||||
updated khtmlw, kfm and kdehelp
|
||||
added kcalc and kpaint
|
||||
updated kdisplay
|
||||
added kscreensaver
|
||||
added --enable-kscreensaver
|
||||
added --enable-debug (and @CXXFLAGS@ to all Makefile.ins)
|
||||
updated kwm to 0.4.7
|
||||
added make uninstall to every app
|
||||
added kvt
|
||||
added khexdit
|
||||
added .kdelnk for kmines, kedit, ktetris
|
||||
put kwm, kfind's .kdelnk in the right directories
|
||||
replaced --enable-kscreensaver by --disable-kscreensaver
|
||||
updated kpanel to 0.15
|
||||
some bugfixes (thanks Marco)
|
||||
some bugfixes (thanks Martin)
|
||||
changed acinclude.m4, because aclocal won't
|
||||
updated kwm to 0.4.8 (patched it again for Qt-1.2)
|
||||
updated kvt to 0.13 (patch from Matthias)
|
||||
patched kvt and kwm
|
||||
updated kwm to 0.5.0
|
||||
updated kvt for 0.14 (again and again :-)
|
||||
updated kview to 0.10
|
||||
updated kfm to 0.6.3
|
||||
patched kscreensaver for FreeBSD (thanks Marc)
|
||||
0.9: updated kdisplay to 0.5.3
|
||||
added klogout
|
||||
patches from Matthias
|
||||
updated kfm to 0.6.4
|
||||
updated kghostview to 0.4
|
||||
added QTINC and QTLIB
|
||||
updated kdehelp to 0.4.11
|
||||
patched kfm to support ktoolbar
|
||||
updated kedit to kedit+
|
||||
added kfontmanager 0.2.1
|
||||
0.9.1: changed kpaint's make style
|
||||
bugfixing
|
||||
updated kmines to 0.6.5
|
||||
updated ktetris to 0.2.4
|
||||
changed to Makefiles to depend on Makefile.in
|
||||
changed the Makefiles to let install depend on all
|
||||
added kjots-0.2.2
|
||||
updated kjots-0.2.3
|
||||
updated kfm to 0.6.6
|
||||
updated kjots-0.2.4
|
||||
updated kpaint-0.2
|
||||
updated kedit to 0.5
|
||||
updated kfontmanager to 0.2.2
|
||||
updated kfm to 0.6.7
|
||||
updated ktetris to 0.2.5
|
||||
updated kjots to 0.2.5
|
||||
0.10: added HAVE_SQRTL
|
||||
added HAVE_CRYPT_H
|
||||
updated kfind
|
||||
updated kfm to kfm-0.8.1
|
||||
re-introduced automake to kdebase
|
||||
bugfixes for the configure.in
|
||||
added XPM, GL and PAM tests to configure
|
||||
added morph3d to kscreensavers
|
||||
updated kfind to 0.3.2
|
||||
added some patches for SGI
|
||||
... lost the time to maintain a Changelog ;)
|
@ -0,0 +1,179 @@
|
||||
## generate API documentation with doxygen
|
||||
apidox-am-yes:
|
||||
@if test "$(subdir)" != "."; then \
|
||||
$(mkinstalldirs) $(top_builddir)/apidocs/$(subdir) ;\
|
||||
if test ! -x $(top_builddir)/apidocs/common; then \
|
||||
if test -d $(top_srcdir)/doc/common; then \
|
||||
common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\
|
||||
else \
|
||||
common_dir=$(kde_libs_htmldir)/en/common ;\
|
||||
fi ;\
|
||||
$(LN_S) $$common_dir $(top_builddir)/apidocs/common; \
|
||||
fi ;\
|
||||
cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \
|
||||
echo "PROJECT_NAME = \"$(subdir) Library\"" >> Doxyfile; \
|
||||
echo "PROJECT_NUMBER = \"Version $(VERSION)\"" >> Doxyfile; \
|
||||
echo "INPUT = $(srcdir)" >> Doxyfile; \
|
||||
echo "IMAGE_PATH = $(top_srcdir)/doc/api" >> Doxyfile ;\
|
||||
echo "OUTPUT_DIRECTORY = $(top_builddir)/apidocs" >> Doxyfile; \
|
||||
echo "HTML_OUTPUT = $(subdir)/html" >> Doxyfile; \
|
||||
echo "HTML_HEADER = $(top_builddir)/apidocs/common/header.html" >> Doxyfile;\
|
||||
echo "HTML_FOOTER = $(top_builddir)/apidocs/common/footer.html" >> Doxyfile;\
|
||||
echo "HTML_STYLESHEET = $(top_builddir)/apidocs/common/doxygen.css" >> Doxyfile;\
|
||||
echo "LATEX_OUTPUT = $(subdir)/latex" >> Doxyfile; \
|
||||
echo "RTF_OUTPUT = $(subdir)/rtf" >> Doxyfile; \
|
||||
echo "MAN_OUTPUT = $(subdir)/man" >> Doxyfile; \
|
||||
echo "GENERATE_HTML = $(GENERATE_FLAG)" >> Doxyfile ;\
|
||||
echo "GENERATE_MAN = $(GENERATE_FLAG)" >> Doxyfile ;\
|
||||
echo "GENERATE_LATEX = $(GENERATE_FLAG)" >> Doxyfile ;\
|
||||
if test -n "$(DOXYGEN_EXCLUDE)"; then \
|
||||
patterns= ;\
|
||||
dirs= ;\
|
||||
for item in `echo "$(DOXYGEN_EXCLUDE)"`; do \
|
||||
if test -d "$(srcdir)/$$item"; then \
|
||||
dirs="$$dirs $(srcdir)/$$item/" ;\
|
||||
else \
|
||||
patterns="$$patterns $$item" ;\
|
||||
fi ;\
|
||||
done ;\
|
||||
echo "EXCLUDE_PATTERNS += $$patterns" >> Doxyfile; \
|
||||
echo "EXCLUDE += $$dirs" >> Doxyfile ;\
|
||||
fi ;\
|
||||
echo "TAGFILES = \\" >> Doxyfile; \
|
||||
tags='$(DOXYGEN_REFERENCES) qt'; for tag in $$tags; do \
|
||||
tagpath= ;\
|
||||
path="../../$$tag" ;\
|
||||
if test -f $(top_builddir)/apidocs/$$tag/$$tag.tag; then \
|
||||
tagpath="$(top_builddir)/apidocs/$$tag/$$tag.tag" ;\
|
||||
else \
|
||||
tagpath=`ls -1 $(kde_htmldir)/en/*-apidocs/$$tag/$$tag.tag 2> /dev/null` ;\
|
||||
if test -n "$$tagpath"; then \
|
||||
path=`echo $$tagpath | sed -e "s,.*/\([^/]*-apidocs\)/$$tag/$$tag.tag,../../../\1/$$tag,"` ;\
|
||||
fi ;\
|
||||
fi ;\
|
||||
if test "$$tag" = qt; then \
|
||||
echo $$tagpath=$(QTDOCDIR) >> Doxyfile ;\
|
||||
else if test -n "$$tagpath"; then \
|
||||
echo "$$tagpath=$$path/html \\" >> Doxyfile ;\
|
||||
fi ;\
|
||||
fi ;\
|
||||
done ;\
|
||||
echo "GENERATE_TAGFILE = $(top_builddir)/apidocs/$(subdir)/`basename $(subdir)`.tag" >> Doxyfile ;\
|
||||
echo "IGNORE_PREFIX = K" >> Doxyfile ;\
|
||||
echo "HAVE_DOT = $(KDE_HAVE_DOT)" >> Doxyfile ;\
|
||||
$(DOXYGEN) Doxyfile ;\
|
||||
fi
|
||||
|
||||
apidox-am-no:
|
||||
|
||||
install-data-local: install-apidox
|
||||
|
||||
## install API documentation
|
||||
install-apidox:
|
||||
@if test "$(subdir)" != "."; then \
|
||||
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html ; \
|
||||
if test -f $(top_builddir)/apidocs/$(subdir)/$(subdir).tag; then \
|
||||
echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
|
||||
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
|
||||
fi; \
|
||||
if test -d $(top_builddir)/apidocs/$(subdir)/html; then \
|
||||
list=`ls $(top_builddir)/apidocs/$(subdir)/html`; \
|
||||
echo "installing $(top_builddir)/apidocs/$(subdir)/html" ;\
|
||||
for file in $$list; do \
|
||||
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \
|
||||
done; \
|
||||
fi; \
|
||||
rm -f $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \
|
||||
$(LN_S) $(kde_libs_htmldir)/en/common $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \
|
||||
else\
|
||||
if test -d $(top_builddir)/apidocs; then \
|
||||
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs ;\
|
||||
list=`cd $(top_builddir)/apidocs && ls -1`; \
|
||||
echo "installing $(top_builddir)/apidocs/$$file" ;\
|
||||
for file in $$list; do \
|
||||
if test -f $(top_builddir)/apidocs/$$file; then \
|
||||
$(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
|
||||
fi; \
|
||||
done ; fi; \
|
||||
fi
|
||||
|
||||
uninstall-local: uninstall-apidox
|
||||
|
||||
## uninstall API documentation
|
||||
uninstall-apidox:
|
||||
@if test "$(subdir)" != "."; then \
|
||||
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); then \
|
||||
rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
|
||||
fi\
|
||||
else\
|
||||
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; then \
|
||||
rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
|
||||
fi\
|
||||
fi
|
||||
|
||||
apidox:
|
||||
@if test "$(subdir)" != "."; then \
|
||||
$(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\
|
||||
else \
|
||||
$(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\
|
||||
fi
|
||||
@set fnord $(MAKEFLAGS); amf=$$2; if test -n '$(SUBDIRS)'; then \
|
||||
list='$(SUBDIRS)'; \
|
||||
for subdir in $$list; do \
|
||||
if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am; then \
|
||||
echo "Making apidox in $$subdir"; \
|
||||
if test "$$subdir" != "."; then \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no apidox) || exit 1; \
|
||||
fi ; fi ;\
|
||||
done; \
|
||||
for subdir in $$list; do \
|
||||
if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am; then \
|
||||
echo "Making apidox in $$subdir"; \
|
||||
if test "$$subdir" != "."; then \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=yes apidox) || exit 1; \
|
||||
fi ; fi ;\
|
||||
done; \
|
||||
fi
|
||||
|
||||
apidox-am-toplevel-no:
|
||||
apidox-am-toplevel-yes:
|
||||
@echo "*** Creating API documentation main page"; \
|
||||
cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \
|
||||
echo "PROJECT_NAME = \"$(DOXYGEN_PROJECT_NAME)\"" >> Doxyfile ; \
|
||||
echo "PROJECT_NUMBER = \"$(DOXYGEN_PROJECT_NUMBER)\"" >> Doxyfile ; \
|
||||
echo "INPUT = $(top_srcdir)" >> Doxyfile ; \
|
||||
echo "OUTPUT_DIRECTORY = $(top_builddir)/apidocs" >> Doxyfile ; \
|
||||
echo "FILE_PATTERNS = *.dox" >> Doxyfile ; \
|
||||
echo "RECURSIVE = NO" >> Doxyfile ; \
|
||||
echo "SOURCE_BROWSER = NO" >> Doxyfile ; \
|
||||
echo "ALPHABETICAL_INDEX = NO" >> Doxyfile ; \
|
||||
echo "HTML_OUTPUT = ." >> Doxyfile ; \
|
||||
echo "HTML_HEADER = apidocs/common/mainheader.html" >> Doxyfile ; \
|
||||
echo "HTML_FOOTER = apidocs/common/mainfooter.html" >> Doxyfile ; \
|
||||
echo "HTML_STYLESHEET = apidocs/common/doxygen.css" >> Doxyfile ; \
|
||||
echo "GENERATE_LATEX = NO" >> Doxyfile ; \
|
||||
echo "GENERATE_RTF = NO" >> Doxyfile ; \
|
||||
echo "GENERATE_MAN = NO" >> Doxyfile ; \
|
||||
echo "GENERATE_XML = NO" >> Doxyfile ; \
|
||||
echo "GENERATE_AUTOGEN_DEF = NO" >> Doxyfile ; \
|
||||
echo "ENABLE_PREPROCESSING = NO" >> Doxyfile ; \
|
||||
echo "CLASS_DIAGRAMS = NO" >> Doxyfile ; \
|
||||
echo "HAVE_DOT = NO" >> Doxyfile ; \
|
||||
echo "GENERATE_HTML = YES" >> Doxyfile ;\
|
||||
$(mkinstalldirs) $(top_builddir)/apidocs ; \
|
||||
rm -f $(top_builddir)/apidocs/common ; \
|
||||
if test -d $(top_srcdir)/doc/common; then \
|
||||
common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\
|
||||
else \
|
||||
common_dir=$(kde_libs_htmldir)/en/common ;\
|
||||
fi ;\
|
||||
$(LN_S) $$common_dir $(top_builddir)/apidocs/common ;\
|
||||
doxygen Doxyfile; \
|
||||
rm -f Doxyfile
|
||||
|
||||
.PHONY: apidox-am-yes apidox-am-no install-data-local install-apidox install-apidox uninstall-local uninstall-apidox uninstall-apidox apidox apidox-am-toplevel-no apidox-am-toplevel-yes
|
||||
|
||||
|
||||
# Local Variables:
|
||||
# mode: makefile
|
||||
# End:
|
@ -0,0 +1,35 @@
|
||||
### Makefile.common
|
||||
###
|
||||
### Copyright (C) 2002 by the KDE developers
|
||||
|
||||
### All the real work is done by the shellscript cvs.sh
|
||||
|
||||
SHELL=/bin/sh
|
||||
|
||||
cvs dist cvs-clean configure configure.in configure.files subdirs package-messages package-merge Makefile.am acinclude.m4 extract-messages:
|
||||
@admindir=$(admindir); \
|
||||
if test "x$$admindir" = x; then \
|
||||
admindir=.; until test -f $$admindir/admin/cvs.sh; do \
|
||||
admindir=$$admindir/..; \
|
||||
if test `cd $$admindir && pwd` = / ; then break; fi; \
|
||||
done; \
|
||||
admindir=$$admindir/admin; \
|
||||
if test -f $$admindir/cvs.sh; then :; else \
|
||||
echo "Can't find the admin/ directory in any parent of the"; \
|
||||
echo "current directory. Please set it with admindir=..."; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
fi; \
|
||||
if test "$@" = "package-merge"; then \
|
||||
MAKE="$(MAKE)" POFILES="$(POFILES)" PACKAGE="$(PACKAGE)" \
|
||||
$(SHELL) $$admindir/cvs.sh package-merge ;\
|
||||
else \
|
||||
MAKE="$(MAKE)" $(SHELL) $$admindir/cvs.sh $@ ;\
|
||||
fi
|
||||
|
||||
configure.in: configure.files subdirs
|
||||
configure.files: subdirs
|
||||
|
||||
.SILENT:
|
||||
|
||||
.PHONY: cvs dist cvs-clean package-merge package-messages
|
@ -0,0 +1,156 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
use DB_File;
|
||||
use Fcntl ':flock';
|
||||
|
||||
if (!defined($ARGV[0])) {
|
||||
print "usage: requires .class dump as parameter!\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
sub bailout
|
||||
{
|
||||
untie %bcheckdb if(defined(%bcheckdb));
|
||||
|
||||
if(defined(MYLOCK)) {
|
||||
flock MYLOCK, LOCK_UN;
|
||||
close(MYLOCK);
|
||||
}
|
||||
|
||||
print @_;
|
||||
exit 5;
|
||||
}
|
||||
|
||||
sub ask_user
|
||||
{
|
||||
my ($dbkey, $dbchunk) = @_;
|
||||
|
||||
if (defined($ENV{"BCHECK_UPDATE"})) {
|
||||
$bcheckdb{$dbkey} = $dbchunk;
|
||||
return;
|
||||
}
|
||||
|
||||
&bailout("BC problem detected") if (! -t STDIN);
|
||||
|
||||
print "(I)gnore / (Q)uit / (U)pdate: ";
|
||||
|
||||
my $key;
|
||||
while(defined(read STDIN, $key, 1)) {
|
||||
$key = lc($key);
|
||||
|
||||
print "got: >$key<\n";
|
||||
|
||||
return if ($key eq 'i');
|
||||
|
||||
&bailout("BC problem. aborted") if ($key eq 'q');
|
||||
|
||||
if ($key eq 'u') {
|
||||
$bcheckdb{$dbkey} = $dbchunk;
|
||||
return;
|
||||
}
|
||||
print "\n(I)gnore / (Q)uit / (U)pdate: ";
|
||||
}
|
||||
}
|
||||
|
||||
sub diff_chunk($$)
|
||||
{
|
||||
my ($oldl, $newl) = @_;
|
||||
my @old = split /^/m, $oldl;
|
||||
my @new = split /^/m, $newl;
|
||||
my $haschanges = 0;
|
||||
my $max = $#old > $#new ? $#old : $#new;
|
||||
|
||||
die "whoops. key different" if ($old[0] ne $new[0]);
|
||||
|
||||
if ($#old != $#new) {
|
||||
warn ("Structural difference.\n");
|
||||
print @old;
|
||||
print "-----------------------------------------------\n";
|
||||
print @new;
|
||||
$haschanges = 1;
|
||||
return $haschanges;
|
||||
}
|
||||
|
||||
print $old[0];
|
||||
|
||||
my ($class) = ($old[0] =~ /^(?:Class |Vtable for )(\S+)/);
|
||||
|
||||
my $c = 1;
|
||||
while ($c < $max) {
|
||||
my ($o, $n) = ($old[$c], $new[$c]);
|
||||
chomp $o;
|
||||
chomp $n;
|
||||
$c++;
|
||||
next if ($o eq $n);
|
||||
|
||||
if(defined($class) and $n =~ /^(\d+\s+)\w+(::\S+\s*.*)$/) {
|
||||
next if ($n eq "$1$class$2");
|
||||
}
|
||||
|
||||
$haschanges = 1;
|
||||
|
||||
print "-$o\n+$n\n\n";
|
||||
}
|
||||
|
||||
return $haschanges;
|
||||
}
|
||||
|
||||
local $dblock = $ENV{"HOME"} . "/bcheck.lock";
|
||||
my $dbfile = $ENV{"HOME"} . "/bcheck.db";
|
||||
my $cdump = $ARGV[0];
|
||||
|
||||
die "file $cdump is not readable: $!" if (! -f $cdump);
|
||||
|
||||
# make sure the advisory lock exists
|
||||
open(MYLOCK, ">$dblock");
|
||||
print MYLOCK "";
|
||||
|
||||
flock MYLOCK, LOCK_EX;
|
||||
|
||||
tie %bcheckdb, 'DB_File', $dbfile;
|
||||
|
||||
my $chunk = "";
|
||||
|
||||
open (IN, "<$cdump") or die "cannot open $cdump: $!";
|
||||
while (<IN>) {
|
||||
|
||||
chop;
|
||||
|
||||
s/0x[0-9a-fA-F]+/0x......../g;
|
||||
s/base size=/size=/g;
|
||||
s/base align=/align=/g;
|
||||
|
||||
$chunk .= $_ . "\n";
|
||||
|
||||
if(/^\s*$/) {
|
||||
my @lines = split /^/m, $chunk;
|
||||
my $key = $lines[0];
|
||||
chomp $key;
|
||||
|
||||
if($key !~ /<anonymous struct>/ &&
|
||||
$key !~ /<anonymous union>/) {
|
||||
if(defined($bcheckdb{$key})) {
|
||||
my $dbversion = $bcheckdb{$key};
|
||||
|
||||
if($dbversion ne $chunk) {
|
||||
&ask_user($key, $chunk) if(&diff_chunk($dbversion, $chunk));
|
||||
}
|
||||
}
|
||||
else {
|
||||
$bcheckdb{$key} = $chunk;
|
||||
print "NEW: $key\n";
|
||||
}
|
||||
}
|
||||
|
||||
$chunk = "";
|
||||
next;
|
||||
}
|
||||
|
||||
}
|
||||
close(IN);
|
||||
|
||||
untie %bcheckdb;
|
||||
flock MYLOCK, LOCK_UN;
|
||||
close(MYLOCK);
|
||||
|
||||
exit 0;
|
@ -0,0 +1,99 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Wrapper for compilers which do not understand `-c -o'.
|
||||
|
||||
# Copyright 1999, 2000 Free Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# 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, 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.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Usage:
|
||||
# compile PROGRAM [ARGS]...
|
||||
# `-o FOO.o' is removed from the args passed to the actual compile.
|
||||
|
||||
prog=$1
|
||||
shift
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
args=
|
||||
while test $# -gt 0; do
|
||||
case "$1" in
|
||||
-o)
|
||||
# configure might choose to run compile as `compile cc -o foo foo.c'.
|
||||
# So we do something ugly here.
|
||||
ofile=$2
|
||||
shift
|
||||
case "$ofile" in
|
||||
*.o | *.obj)
|
||||
;;
|
||||
*)
|
||||
args="$args -o $ofile"
|
||||
ofile=
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
args="$args $1"
|
||||
;;
|
||||
*)
|
||||
args="$args $1"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no `-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# `.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$prog" $args
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use `[/.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir $lockdir > /dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir $lockdir; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$prog" $args
|
||||
status=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
mv "$cofile" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir $lockdir
|
||||
exit $status
|
@ -0,0 +1,191 @@
|
||||
#!/usr/bin/env perl
|
||||
|
||||
# this script patches a config.status file, to use our own perl script
|
||||
# in the main loop
|
||||
# we do it this way to circumvent hacking (and thereby including)
|
||||
# autoconf function (which are GPL) into our LGPL acinclude.m4.in
|
||||
# written by Michael Matz <matz@kde.org>
|
||||
# adapted by Dirk Mueller <mueller@kde.org>
|
||||
#
|
||||
# This file is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
|
||||
# This library 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
|
||||
# Library General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Library General Public License
|
||||
# along with this library; see the file COPYING.LIB. If not, write to
|
||||
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
# Boston, MA 02111-1307, USA.
|
||||
|
||||
# we have to change two places
|
||||
# 1. the splitting of the substitutions into chunks of 90 (or even 48 in
|
||||
# later autoconf's
|
||||
# 2. the big main loop which patches all Makefile.in's
|
||||
|
||||
use strict;
|
||||
use File::Basename;
|
||||
|
||||
my $ac_aux_dir = dirname($0);
|
||||
my ($flag);
|
||||
my $ac_version = 0;
|
||||
my $vpath_seen = 0;
|
||||
$flag = 0;
|
||||
|
||||
while (<>) {
|
||||
# usage of $flag: 0 -- we have seen nothing yet
|
||||
# 1 -- we are in (1)
|
||||
# 2 -- we have ended (1)
|
||||
# 3 -- we are in (2)
|
||||
# 4 -- we ended (2)
|
||||
|
||||
if ($flag == 4) {
|
||||
print;
|
||||
} elsif ($flag == 0) {
|
||||
# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..."
|
||||
# ends with (excluding) "CONFIG_FILE=..."
|
||||
# in later autoconf (2.14.1) there is no CONFIG_FILES= line,
|
||||
# but instead the (2) directly follow (1)
|
||||
if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) {
|
||||
$flag = 1;
|
||||
if ($1 eq 'lines') {
|
||||
# lets hope its different with 2141,
|
||||
# wasn't able to verify that
|
||||
if ($2 eq '48') {
|
||||
$ac_version = 250;
|
||||
}
|
||||
else {
|
||||
$ac_version = 2141;
|
||||
}
|
||||
} elsif ($1 eq 'cmds') {
|
||||
$ac_version = 213;
|
||||
}
|
||||
# hmm, we don't know the autoconf version, but we try anyway
|
||||
} else {
|
||||
print;
|
||||
}
|
||||
} elsif ($flag == 1) {
|
||||
if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) {
|
||||
print;
|
||||
$flag = 2;
|
||||
} elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
|
||||
$flag = 3;
|
||||
}
|
||||
} elsif ($flag == 2) {
|
||||
# 2. begins with: "for ac_file in.*CONFIG_FILES" (the next 'for' after (1))
|
||||
# end with: "rm -f conftest.s\*"
|
||||
# on autoconf 250, it ends with '# CONFIG_HEADER section'
|
||||
#
|
||||
# gg: if a post-processing commands section is found first,
|
||||
# stop there and insert a new loop to honor the case/esac.
|
||||
# (pattern: /^\s+#\sRun the commands associated with the file./)
|
||||
|
||||
if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
|
||||
$flag = 3;
|
||||
} else {
|
||||
print;
|
||||
}
|
||||
} elsif ($flag == 3) {
|
||||
if (/^\s*rm\s+-f\s+conftest/ ) {
|
||||
$flag = 4;
|
||||
&insert_main_loop();
|
||||
} elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) {
|
||||
$flag = 4;
|
||||
&insert_main_loop();
|
||||
#die "hhhhhhh";
|
||||
if ($ac_version != 2141) {
|
||||
print STDERR "hmm, don't know autoconf version\n";
|
||||
}
|
||||
} elsif (/^\#\s*CONFIG_(HEADER|COMMANDS) section.*|^\s+#\s(Run) the commands associated/) {
|
||||
$flag = 4;
|
||||
my $commands = defined $2;
|
||||
&insert_main_loop();
|
||||
$commands && insert_command_loop();
|
||||
if($ac_version != 250) {
|
||||
print STDERR "hmm, something went wrong :-(\n";
|
||||
}
|
||||
} elsif (/VPATH/ ) {
|
||||
$vpath_seen = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
die "wrong input (flag != 4)" unless $flag == 4;
|
||||
print STDERR "hmm, don't know autoconf version\n" unless $ac_version;
|
||||
|
||||
sub insert_main_loop {
|
||||
|
||||
if ($ac_version == 250) {
|
||||
&insert_main_loop_250();
|
||||
}
|
||||
else {
|
||||
&insert_main_loop_213();
|
||||
}
|
||||
}
|
||||
|
||||
sub insert_main_loop_250 {
|
||||
|
||||
print <<EOF;
|
||||
#echo Doing the fast build of Makefiles -- autoconf $ac_version
|
||||
EOF
|
||||
if ($vpath_seen) {
|
||||
print <<EOF;
|
||||
# VPATH subst was seen in original config.status main loop
|
||||
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >>\$tmp/subs.sed
|
||||
EOF
|
||||
}
|
||||
print <<EOF;
|
||||
rm -f \$tmp/subs.files
|
||||
for ac_file in .. \$CONFIG_FILES ; do
|
||||
if test "x\$ac_file" != x..; then
|
||||
echo \$ac_file >> \$tmp/subs.files
|
||||
fi
|
||||
done
|
||||
if test -f \$tmp/subs.files ; then
|
||||
perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL"
|
||||
fi
|
||||
rm -f \$tmp/subs.files
|
||||
|
||||
fi
|
||||
EOF
|
||||
return;
|
||||
}
|
||||
|
||||
sub insert_main_loop_213 {
|
||||
print <<EOF;
|
||||
#echo Doing the fast build of Makefiles -- autoconf $ac_version
|
||||
if test "x\$ac_cs_root" = "x" ; then
|
||||
ac_cs_root=conftest
|
||||
fi
|
||||
EOF
|
||||
if ($vpath_seen) {
|
||||
print <<EOF;
|
||||
# VPATH subst was seen in original config.status main loop
|
||||
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >> \$ac_cs_root.subs
|
||||
EOF
|
||||
}
|
||||
print <<EOF;
|
||||
rm -f \$ac_cs_root.sacfiles
|
||||
for ac_file in .. \$CONFIG_FILES ; do
|
||||
if test "x\$ac_file" != x..; then
|
||||
echo \$ac_file >> \$ac_cs_root.sacfiles
|
||||
fi
|
||||
done
|
||||
if test -f \$ac_cs_root.sacfiles ; then
|
||||
perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL"
|
||||
fi
|
||||
rm -f \$ac_cs_root.s*
|
||||
|
||||
EOF
|
||||
return;
|
||||
}
|
||||
|
||||
sub insert_command_loop {
|
||||
print <<EOF;
|
||||
for ac_file in .. \$CONFIG_FILES ; do
|
||||
EOF
|
||||
}
|
@ -0,0 +1,236 @@
|
||||
#!/usr/bin/env perl
|
||||
# a script for use by autoconf to make the Makefiles
|
||||
# from the Makefile.in's
|
||||
#
|
||||
# the original autoconf mechanism first splits all substitutions into groups
|
||||
# of ca. 90, and than invokes sed for _every_ Makefile.in and every group
|
||||
# (so around 2-3 times per Makefile.in). So this takes forever, as sed
|
||||
# has to recompile the regexps every time.
|
||||
#
|
||||
# this script does better. It changes all Makefile.ins in one process.
|
||||
# in kdelibs the time for building Makefile went down from 2:59 min to 13 sec!
|
||||
#
|
||||
# written by Michael Matz <matz@kde.org>
|
||||
# adapted by Dirk Mueller <mueller@kde.org>
|
||||
|
||||
# This file is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
|
||||
# This library 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
|
||||
# Library General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Library General Public License
|
||||
# along with this library; see the file COPYING.LIB. If not, write to
|
||||
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
# Boston, MA 02111-1307, USA.
|
||||
|
||||
use strict;
|
||||
|
||||
use File::Path;
|
||||
|
||||
my $ac_subs=$ARGV[0];
|
||||
my $ac_sacfiles = $ARGV[1];
|
||||
my $ac_given_srcdir=$ARGV[2];
|
||||
my $ac_given_INSTALL=$ARGV[3];
|
||||
|
||||
my @comp_match;
|
||||
my @comp_subs;
|
||||
|
||||
#print "ac_subs=$ac_subs\n";
|
||||
#print "ac_sacfiles=$ac_sacfiles\n";
|
||||
#print "ac_given_srcdir=$ac_given_srcdir\n";
|
||||
#print "ac_given_INSTALL=$ac_given_INSTALL\n";
|
||||
|
||||
my $configure_input;
|
||||
my ($srcdir, $top_srcdir);
|
||||
my $INSTALL;
|
||||
my $bad_perl = ($] < 5.005);
|
||||
my $created_file_count = 0;
|
||||
|
||||
open(CF, "< $ac_subs") || die "can't open $ac_subs: $!";
|
||||
my @subs = <CF>;
|
||||
close(CF);
|
||||
chomp @subs;
|
||||
@comp_match=();
|
||||
@comp_subs=();
|
||||
|
||||
if ($bad_perl) {
|
||||
print "Using perl older than version 5.005\n";
|
||||
foreach my $pat (@subs) {
|
||||
if ( ($pat =~ m/s%([^%]*)%([^%]*)%g/ )
|
||||
|| ($pat =~ m/s%([^%]*)%([^%]*)%;t/ )
|
||||
|| ($pat =~ m/s,([^,]*),(.*),;t/)
|
||||
|| ($pat =~ m%s/([^/]*)/([^/]*)/g% )
|
||||
|| ($pat =~ m%s/([^/]*)/([^/]*)/;t% )
|
||||
) {
|
||||
# form : s%bla%blubb%g
|
||||
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
|
||||
# or s,bla,blubb,;t t (autoconf 2.52)
|
||||
my $srch = $1;
|
||||
my $repl = $2;
|
||||
$repl =~ s/\\(.)/$1/g;
|
||||
push @comp_subs, make_closure($srch, $repl);
|
||||
|
||||
} elsif ( ($pat =~ /%([^%]*)%d/ )
|
||||
|| ($pat =~ m%/([^/]*)/d% )
|
||||
) {
|
||||
push @comp_subs, make_closure($1, "");
|
||||
} else {
|
||||
die "Uhh. Malformed pattern in $ac_subs ($pat)"
|
||||
unless ( $pat =~ /^\s*$/ ); # ignore white lines
|
||||
}
|
||||
}
|
||||
} else {
|
||||
foreach my $pat (@subs) {
|
||||
if ( ($pat =~ /s%([^%]*)%([^%]*)%g/ ) ||
|
||||
($pat =~ /s%([^%]*)%([^%]*)%;t/ ) ||
|
||||
($pat =~ /s,([^,]*),(.*),;t/) ) {
|
||||
# form : s%bla%blubb%g
|
||||
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
|
||||
# or s,bla,blubb,;t t (autoconf 2.52)
|
||||
my $srch = $1;
|
||||
my $repl = $2;
|
||||
push @comp_match, eval "qr/\Q$srch\E/"; # compile match pattern
|
||||
$repl =~ s/\\(.)/$1/g;
|
||||
push @comp_subs, $repl;
|
||||
} elsif ( ($pat =~ /%([^%]*)%d/ )
|
||||
|| ($pat =~ m%/([^/]*)/d% )
|
||||
) {
|
||||
push @comp_match, eval "qr/\Q$1\E/";
|
||||
push @comp_subs, "";
|
||||
} else {
|
||||
die "Uhh. Malformed pattern in $ac_subs ($pat)"
|
||||
unless ( $pat =~ /^\s*$/ ); # ignore white lines
|
||||
}
|
||||
}
|
||||
}
|
||||
undef @subs;
|
||||
|
||||
# read the list of files to be patched, form:
|
||||
# ./Makefile arts/Makefile arts/examples/Makefile arts/flow/Makefile
|
||||
|
||||
open(CF, "< $ac_sacfiles") || die "can't open $ac_sacfiles: $!";
|
||||
my @ac_files = <CF>;
|
||||
close(CF);
|
||||
chomp @ac_files;
|
||||
|
||||
|
||||
my $ac_file;
|
||||
foreach $ac_file (@ac_files) {
|
||||
next if $ac_file =~ /\.\./;
|
||||
next if $ac_file =~ /^\s*$/;
|
||||
my $ac_file_in;
|
||||
my ($ac_dir, $ac_dots, $ac_dir_suffix);
|
||||
|
||||
if ($ac_file =~ /.*:.*/ ) {
|
||||
($ac_file_in = $ac_file) =~ s%[^:]*:%%;
|
||||
$ac_file =~ s%:.*%%;
|
||||
} else {
|
||||
$ac_file_in = $ac_file.".in";
|
||||
}
|
||||
|
||||
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
|
||||
|
||||
# Remove last slash and all that follows it. Not all systems have dirname.
|
||||
($ac_dir = $ac_file) =~ s%/[^/][^/]*$%%;
|
||||
if ( ($ac_dir ne $ac_file) && ($ac_dir ne ".")) {
|
||||
# The file is in a subdirectory.
|
||||
if (! -d "$ac_dir") { mkpath "$ac_dir", 0, 0777; }
|
||||
($ac_dir_suffix = $ac_dir) =~ s%^./%%;
|
||||
$ac_dir_suffix="/".$ac_dir_suffix;
|
||||
# A "../" for each directory in $ac_dir_suffix.
|
||||
($ac_dots = $ac_dir_suffix) =~ s%/[^/]*%../%g;
|
||||
} else {
|
||||
$ac_dir_suffix="";
|
||||
$ac_dots="";
|
||||
}
|
||||
|
||||
if ($ac_given_srcdir eq ".") {
|
||||
$srcdir=".";
|
||||
if ($ac_dots) {
|
||||
( $top_srcdir = $ac_dots) =~ s%/$%%;
|
||||
} else { $top_srcdir="."; }
|
||||
} elsif ($ac_given_srcdir =~ m%^/%) {
|
||||
$srcdir=$ac_given_srcdir.$ac_dir_suffix;
|
||||
$top_srcdir = $ac_given_srcdir;
|
||||
} else {
|
||||
$srcdir = $ac_dots.$ac_given_srcdir.$ac_dir_suffix;
|
||||
$top_srcdir = $ac_dots.$ac_given_srcdir;
|
||||
}
|
||||
|
||||
if ($ac_given_INSTALL) {
|
||||
if ($ac_given_INSTALL =~ m%^/% ) {
|
||||
$INSTALL = $ac_given_INSTALL;
|
||||
} else {
|
||||
$INSTALL = $ac_dots.$ac_given_INSTALL;
|
||||
}
|
||||
}
|
||||
|
||||
print "fast creating $ac_file\n";
|
||||
unlink $ac_file;
|
||||
my $ac_comsub="";
|
||||
my $fname=$ac_file_in;
|
||||
$fname =~ s%.*/%%;
|
||||
$configure_input="$ac_file. Generated from $fname by config.pl.";
|
||||
|
||||
my $ac_file_inputs;
|
||||
($ac_file_inputs = $ac_file_in) =~ s%^%$ac_given_srcdir/%;
|
||||
$ac_file_inputs =~ s%:% $ac_given_srcdir/%g;
|
||||
|
||||
patch_file($ac_file, $ac_file_inputs);
|
||||
++$created_file_count;
|
||||
}
|
||||
|
||||
print "config.pl: fast created $created_file_count file(s).\n";
|
||||
|
||||
sub patch_file {
|
||||
my ($outf, $infiles) = @_;
|
||||
my $filedata;
|
||||
my @infiles=split(' ', $infiles);
|
||||
my $i=0;
|
||||
|
||||
foreach my $name (@infiles) {
|
||||
if (open(CF, "< $name")) {
|
||||
while (<CF>) {
|
||||
$filedata .= $_;
|
||||
}
|
||||
close(CF);
|
||||
} else {
|
||||
print STDERR "can't open $name: $!"."\n";
|
||||
}
|
||||
}
|
||||
|
||||
$filedata =~ s%\@configure_input\@%$configure_input%g;
|
||||
$filedata =~ s%\@srcdir\@%$srcdir%g;
|
||||
$filedata =~ s%\@top_srcdir\@%$top_srcdir%g;
|
||||
$filedata =~ s%\@INSTALL\@%$INSTALL%g;
|
||||
|
||||
if ($bad_perl) {
|
||||
while ($i <= $#comp_subs) {
|
||||
my $ref = $comp_subs[$i];
|
||||
&$ref(\$filedata);
|
||||
$i++;
|
||||
}
|
||||
} else {
|
||||
while ($i <= $#comp_match) {
|
||||
$filedata =~ s/$comp_match[$i]/$comp_subs[$i]/g;
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
open(CF, "> $outf") || die "can't create $outf: $!";
|
||||
print CF $filedata;
|
||||
close(CF);
|
||||
}
|
||||
|
||||
sub make_closure {
|
||||
my ($pat, $sub) = @_;
|
||||
my $ret = eval "return sub { my \$ref=shift; \$\$ref =~ s%\Q$pat\E%\Q$sub\E%g; }";
|
||||
if ($@) {
|
||||
print "can't create CODE: $@\n";
|
||||
}
|
||||
return $ret;
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
|
||||
if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
|
||||
# And if so, warn when they don't match
|
||||
if test "$kde_libs_prefix" != "$given_prefix"; then
|
||||
# And if kde doesn't know about the prefix yet
|
||||
echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
|
||||
if test $? -ne 0; then
|
||||
echo ""
|
||||
echo "Warning: you chose to install this package in $given_prefix,"
|
||||
echo "but KDE was found in $kde_libs_prefix."
|
||||
echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
|
||||
echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
|
||||
echo "Then restart KDE."
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then
|
||||
echo ""
|
||||
echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility"
|
||||
echo "was not included. Therefore, GCC symbol visibility support remains disabled."
|
||||
echo ""
|
||||
echo "For better performance, consider including the Qt visibility supporting patch"
|
||||
echo "located at:"
|
||||
echo ""
|
||||
echo "http://bugs.kde.org/show_bug.cgi?id=109386"
|
||||
echo ""
|
||||
echo "and recompile all of Qt and KDE. Note, this is entirely optional and"
|
||||
echo "everything will continue to work just fine without it."
|
||||
echo ""
|
||||
fi
|
||||
|
||||
if test "$all_tests" = "bad"; then
|
||||
if test ! "$cache_file" = "/dev/null"; then
|
||||
echo ""
|
||||
echo "Please remove the file $cache_file after changing your setup"
|
||||
echo "so that configure will find the changes next time."
|
||||
echo ""
|
||||
fi
|
||||
else
|
||||
echo ""
|
||||
echo "Good - your configure finished. Start make now"
|
||||
echo ""
|
||||
fi
|
@ -0,0 +1,57 @@
|
||||
dnl This file is part of the KDE libraries/packages
|
||||
dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
|
||||
|
||||
dnl This file is free software; you can redistribute it and/or
|
||||
dnl modify it under the terms of the GNU Library General Public
|
||||
dnl License as published by the Free Software Foundation; either
|
||||
dnl version 2 of the License, or (at your option) any later version.
|
||||
|
||||
dnl This library is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
dnl Library General Public License for more details.
|
||||
|
||||
dnl You should have received a copy of the GNU Library General Public License
|
||||
dnl along with this library; see the file COPYING.LIB. If not, write to
|
||||
dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
dnl Boston, MA 02111-1307, USA.
|
||||
|
||||
# Original Author was Kalle@kde.org
|
||||
# I lifted it in some mater. (Stephan Kulow)
|
||||
# I used much code from Janos Farkas
|
||||
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_INIT(acinclude.m4) dnl a source file from your sub dir
|
||||
|
||||
dnl This is so we can use kde-common
|
||||
AC_CONFIG_AUX_DIR(admin)
|
||||
|
||||
dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
|
||||
unset CDPATH
|
||||
|
||||
dnl Checking host/target/build systems, for make, install etc.
|
||||
AC_CANONICAL_SYSTEM
|
||||
dnl Perform program name transformation
|
||||
AC_ARG_PROGRAM
|
||||
|
||||
dnl Automake doc recommends to do this only here. (Janos)
|
||||
AM_INIT_AUTOMAKE(@MODULENAME@, @VERSION@) dnl searches for some needed programs
|
||||
|
||||
KDE_SET_PREFIX
|
||||
|
||||
dnl generate the config header
|
||||
AM_CONFIG_HEADER(config.h) dnl at the distribution this done
|
||||
|
||||
dnl Checks for programs.
|
||||
AC_CHECK_COMPILERS
|
||||
AC_ENABLE_SHARED(yes)
|
||||
AC_ENABLE_STATIC(no)
|
||||
KDE_PROG_LIBTOOL
|
||||
|
||||
dnl for NLS support. Call them in this order!
|
||||
dnl WITH_NLS is for the po files
|
||||
AM_KDE_WITH_NLS
|
||||
|
||||
dnl KDE_USE_QT
|
||||
AC_PATH_KDE
|
@ -0,0 +1,87 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
#
|
||||
# This script recursively (beginning with the current directory)
|
||||
# wipes out everything not registered in CVS.
|
||||
#
|
||||
# written by Oswald Buddenhagen <ossi@kde.org>
|
||||
# inspired by the "old" cvs-clean target from Makefile.common
|
||||
#
|
||||
# This file is free software in terms of the BSD license. That means
|
||||
# that you can do anything with it except removing this license or
|
||||
# the above copyright notice. There is NO WARRANTY of any kind.
|
||||
#
|
||||
|
||||
sub rmrf()
|
||||
{
|
||||
my $fn = shift;
|
||||
lstat ($fn);
|
||||
if (-d _) {
|
||||
if (opendir (DIR, $fn)) {
|
||||
for my $efn (grep (!/^\.\.?$/, readdir (DIR))) {
|
||||
&rmrf ($fn."/".$efn);
|
||||
}
|
||||
closedir (DIR);
|
||||
rmdir ($fn);
|
||||
}
|
||||
} else {
|
||||
unlink ($fn);
|
||||
}
|
||||
}
|
||||
|
||||
sub newfiles()
|
||||
{
|
||||
my ($indir, $incvs) = @_;
|
||||
for my $n (keys (%$incvs)) { delete $$indir{$n} }
|
||||
return sort (keys (%$indir));
|
||||
}
|
||||
|
||||
sub cvsclean()
|
||||
{
|
||||
my $dir = shift;
|
||||
my (%dirsdir, %filesdir, %dirscvs, %filescvs);
|
||||
my $dnam = $dir ? $dir : ".";
|
||||
if (!opendir (DIR, $dnam)) {
|
||||
print STDERR "Cannot enter \"".$dnam."\".\n";
|
||||
return;
|
||||
}
|
||||
for my $fn (grep (!/^\.\.?$/, readdir (DIR))) {
|
||||
if (-d $dir.$fn) {
|
||||
$fn eq "CVS" or $dirsdir{$fn} = 1;
|
||||
} else {
|
||||
$filesdir{$fn} = 1;
|
||||
}
|
||||
}
|
||||
closedir (DIR);
|
||||
if (!open (FILE, "<".$dir."CVS/Entries")) {
|
||||
print STDERR "No CVS information in \"".$dnam."\".\n";
|
||||
return;
|
||||
}
|
||||
while (<FILE>) {
|
||||
m%^D/([^/]+)/.*$% and $dirscvs{$1} = 1;
|
||||
m%^/([^/]+)/.*$% and $filescvs{$1} = 1;
|
||||
}
|
||||
close (FILE);
|
||||
if (open (FILE, "<".$dir."CVS/Entries.Log")) {
|
||||
while (<FILE>) {
|
||||
m%^A D/([^/]+)/.*$% and $dirscvs{$1} = 1;
|
||||
m%^A /([^/]+)/.*$% and $filescvs{$1} = 1;
|
||||
m%^R D/([^/]+)/.*$% and delete $dirscvs{$1};
|
||||
m%^R /([^/]+)/.*$% and delete $filescvs{$1};
|
||||
}
|
||||
close (FILE);
|
||||
}
|
||||
for my $fn (&newfiles (\%filesdir, \%filescvs)) {
|
||||
print ("F ".$dir.$fn."\n");
|
||||
&rmrf ($dir.$fn);
|
||||
}
|
||||
for my $fn (&newfiles (\%dirsdir, \%dirscvs)) {
|
||||
print ("D ".$dir.$fn."\n");
|
||||
&rmrf ($dir.$fn);
|
||||
}
|
||||
for my $fn (sort (keys (%dirscvs))) {
|
||||
&cvsclean ($dir.$fn."/");
|
||||
}
|
||||
}
|
||||
|
||||
&cvsclean ("");
|
@ -0,0 +1,663 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# cvs.sh
|
||||
#
|
||||
# This file contains support code from Makefile.common
|
||||
# It defines a shell function for each known target
|
||||
# and then does a case to call the correct function.
|
||||
|
||||
unset MAKEFLAGS
|
||||
|
||||
call_and_fix_autoconf()
|
||||
{
|
||||
$AUTOCONF || exit 1
|
||||
if test -r configure.in.in ; then
|
||||
perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\
|
||||
\\n perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\
|
||||
\\\\\\n || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\
|
||||
\\n rm -f \\\$CONFIG_STATUS.bak\\nfi\
|
||||
\\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure
|
||||
fi
|
||||
}
|
||||
|
||||
strip_makefile()
|
||||
{
|
||||
if test ! -f $makefile_wo; then
|
||||
perl -e '$in=0; while ( <> ) { $in = 1 if ($_ =~ m/^if / ); print $_ unless ($in || $_ =~ m/^include /); $in = 0 if ($_ =~ m/^endif/); }' < $makefile_am > $makefile_wo
|
||||
fi
|
||||
}
|
||||
|
||||
check_autotool_versions()
|
||||
{
|
||||
required_autoconf_version="2.53 or newer"
|
||||
AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1`
|
||||
case $AUTOCONF_VERSION in
|
||||
Autoconf*2.5* | autoconf*2.5* ) : ;;
|
||||
"" )
|
||||
echo "*** AUTOCONF NOT FOUND!."
|
||||
echo "*** KDE requires autoconf $required_autoconf_version"
|
||||
exit 1
|
||||
;;
|
||||
* )
|
||||
echo "*** YOU'RE USING $AUTOCONF_VERSION."
|
||||
echo "*** KDE requires autoconf $required_autoconf_version"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1`
|
||||
case $AUTOHEADER_VERSION in
|
||||
Autoconf*2.5* | autoheader*2.5* ) : ;;
|
||||
"" )
|
||||
echo "*** AUTOHEADER NOT FOUND!."
|
||||
echo "*** KDE requires autoheader $required_autoconf_version"
|
||||
exit 1
|
||||
;;
|
||||
* )
|
||||
echo "*** YOU'RE USING $AUTOHEADER_VERSION."
|
||||
echo "*** KDE requires autoheader $required_autoconf_version"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
|
||||
required_automake_version="1.6.1 or newer"
|
||||
case $AUTOMAKE_STRING in
|
||||
automake*1.5d* | automake*1.5* | automake*1.5-* )
|
||||
echo "*** YOU'RE USING $AUTOMAKE_STRING."
|
||||
echo "*** KDE requires automake $required_automake_version"
|
||||
exit 1
|
||||
;;
|
||||
automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9*)
|
||||
echo "*** $AUTOMAKE_STRING found."
|
||||
UNSERMAKE=no
|
||||
;;
|
||||
"" )
|
||||
echo "*** AUTOMAKE NOT FOUND!."
|
||||
echo "*** KDE requires automake $required_automake_version"
|
||||
exit 1
|
||||
;;
|
||||
*unsermake* ) :
|
||||
echo "*** YOU'RE USING UNSERMAKE."
|
||||
echo "*** GOOD LUCK!! :)"
|
||||
UNSERMAKE=unsermake
|
||||
;;
|
||||
* )
|
||||
echo "*** YOU'RE USING $AUTOMAKE_STRING."
|
||||
echo "*** KDE requires automake $required_automake_version"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
unset required_automake_version
|
||||
}
|
||||
|
||||
cvs()
|
||||
{
|
||||
check_autotool_versions
|
||||
acinclude_m4
|
||||
|
||||
### Make new subdirs and configure.in.
|
||||
### The make calls could be optimized away here,
|
||||
### with a little thought.
|
||||
if test -r configure.in.in; then
|
||||
rm -f configure.in
|
||||
echo "*** Creating list of subdirectories"
|
||||
create_subdirs
|
||||
|
||||
if test -r Makefile.am.in; then
|
||||
echo "*** Creating Makefile.am"
|
||||
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
|
||||
strip_makefile
|
||||
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
|
||||
else
|
||||
Makefile_am
|
||||
fi
|
||||
fi
|
||||
configure_files
|
||||
echo "*** Creating configure.in"
|
||||
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
|
||||
strip_makefile
|
||||
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
|
||||
else
|
||||
configure_in
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "*** Creating aclocal.m4"
|
||||
$ACLOCAL $ACLOCALFLAGS || exit 1
|
||||
echo "*** Creating configure"
|
||||
call_and_fix_autoconf
|
||||
|
||||
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
|
||||
echo "*** Creating config.h template"
|
||||
$AUTOHEADER || exit 1
|
||||
fi
|
||||
|
||||
echo "*** Creating Makefile templates"
|
||||
$AUTOMAKE || exit 1
|
||||
|
||||
if test "$UNSERMAKE" = no; then
|
||||
echo "*** Postprocessing Makefile templates"
|
||||
perl -w admin/am_edit || exit 1
|
||||
fi
|
||||
|
||||
if egrep "^cvs-local:" $makefile_am >/dev/null; then \
|
||||
strip_makefile
|
||||
$MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1
|
||||
fi
|
||||
|
||||
echo "*** Creating date/time stamp"
|
||||
touch stamp-h.in
|
||||
|
||||
echo "*** Finished"
|
||||
echo " Don't forget to run ./configure"
|
||||
echo " If you haven't done so in a while, run ./configure --help"
|
||||
}
|
||||
|
||||
dist()
|
||||
{
|
||||
check_autotool_versions
|
||||
|
||||
###
|
||||
### First build all of the files necessary to do just "make"
|
||||
###
|
||||
acinclude_m4
|
||||
if test -r configure.in.in; then
|
||||
rm -f configure.in
|
||||
create_subdirs
|
||||
|
||||
if test -r Makefile.am.in; then
|
||||
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
|
||||
strip_makefile
|
||||
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
|
||||
else
|
||||
Makefile_am
|
||||
fi
|
||||
fi
|
||||
configure_files
|
||||
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
|
||||
strip_makefile
|
||||
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
|
||||
else
|
||||
configure_in
|
||||
fi
|
||||
fi
|
||||
$ACLOCAL $ACLOCALFLAGS
|
||||
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
|
||||
echo "*** Creating config.h template"
|
||||
$AUTOHEADER || exit 1
|
||||
fi
|
||||
$AUTOMAKE --foreign || exit 1
|
||||
if test "$UNSERMAKE" = no; then
|
||||
echo "*** Postprocessing Makefile templates"
|
||||
perl -w admin/am_edit || exit 1
|
||||
fi
|
||||
call_and_fix_autoconf
|
||||
touch stamp-h.in
|
||||
if grep "^cvs-local:" $makefile_am >/dev/null; then
|
||||
strip_makefile
|
||||
$MAKE -f $makefile_wo cvs-local top_srcdir=.
|
||||
fi
|
||||
|
||||
###
|
||||
### Then make messages
|
||||
###
|
||||
if test -d po; then
|
||||
LIST=`find ./po -name "*.po"`
|
||||
for i in $LIST; do
|
||||
file2=`echo $i | sed -e "s#\.po#\.gmo#"`
|
||||
msgfmt -o $file2 $i || touch $file2
|
||||
done
|
||||
fi
|
||||
if grep "^cvs-dist-local:" $makefile_am >/dev/null; then
|
||||
strip_makefile
|
||||
$MAKE -f $makefile_wo cvs-dist-local top_srcdir=.
|
||||
fi
|
||||
}
|
||||
|
||||
subdir_dist()
|
||||
{
|
||||
$ACLOCAL $ACLOCALFLAGS
|
||||
$AUTOHEADER
|
||||
$AUTOMAKE
|
||||
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
|
||||
case $AUTOMAKE_STRING in
|
||||
*unsermake* ) :
|
||||
;;
|
||||
*)
|
||||
perl -w ../admin/am_edit --path=../admin
|
||||
esac
|
||||
call_and_fix_autoconf
|
||||
touch stamp-h.in
|
||||
}
|
||||
|
||||
configure_in()
|
||||
{
|
||||
rm -f configure.in configure.in.new
|
||||
kde_use_qt_param=
|
||||
test -f configure.files || { echo "need configure.files for configure.in"; exit 1; }
|
||||
list=`fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"`
|
||||
: > configure.in.new
|
||||
for file in $list; do
|
||||
echo "dnl =======================================================" >> configure.in.new
|
||||
echo "dnl FILE: $file" >> configure.in.new
|
||||
echo "dnl =======================================================" >> configure.in.new
|
||||
echo "" >> configure.in.new
|
||||
cat $file >> configure.in.new
|
||||
done
|
||||
echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new
|
||||
if test -f Makefile.am.in; then
|
||||
subdirs=`cat subdirs`
|
||||
for dir in $subdirs; do
|
||||
vdir=`echo $dir | sed -e 's,[-+.@],_,g'`
|
||||
echo "AM_CONDITIONAL($vdir""_SUBDIR_included, test \"x\$$vdir""_SUBDIR_included\" = xyes)" >> configure.in.new
|
||||
if test -f "$dir/configure.in"; then
|
||||
echo "if test \"x\$$vdir""_SUBDIR_included\" = xyes; then " >> configure.in.new
|
||||
echo " AC_CONFIG_SUBDIRS($dir)" >> configure.in.new
|
||||
echo "fi" >> configure.in.new
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new
|
||||
|
||||
if test -f inst-apps; then
|
||||
topleveldirs=`cat inst-apps`
|
||||
else
|
||||
topleveldirs=
|
||||
for dir in `ls -1d * | sort`; do
|
||||
if test "$dir" != "debian" && test -d $dir; then
|
||||
topleveldirs="$topleveldirs $dir"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
for topleveldir in $topleveldirs; do
|
||||
if test -f $topleveldir/configure.in; then
|
||||
continue
|
||||
fi
|
||||
if test -f $topleveldir/Makefile.am; then :; else
|
||||
continue
|
||||
fi
|
||||
|
||||
mfs=`find $topleveldir -follow -name Makefile.am -print | fgrep -v "/." | \
|
||||
sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'`
|
||||
for i in $mfs; do
|
||||
echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new
|
||||
done
|
||||
done
|
||||
|
||||
files=`cat configure.files`
|
||||
list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
|
||||
for file in $list; do
|
||||
echo "AC_CONFIG_FILES([ $file ])" >> configure.in.new
|
||||
done
|
||||
|
||||
midfiles=`cat configure.files | fgrep "configure.in.mid"`
|
||||
test -n "$midfiles" && cat $midfiles >> configure.in.new
|
||||
|
||||
echo "AC_OUTPUT" >> configure.in.new
|
||||
modulename=
|
||||
if test -f configure.in.in; then
|
||||
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then
|
||||
kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
|
||||
fi
|
||||
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then
|
||||
line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
|
||||
if test -n "$line"; then
|
||||
modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
|
||||
VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
|
||||
fi
|
||||
sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
|
||||
configure.in.new > configure.in && mv configure.in configure.in.new
|
||||
fi
|
||||
fi
|
||||
if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then
|
||||
VERSION="\"3.4.2\""
|
||||
fi
|
||||
if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then
|
||||
modulename=`pwd`;
|
||||
modulename=`basename $modulename`
|
||||
esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
|
||||
modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"`
|
||||
|
||||
fi
|
||||
if test -n "$kde_use_qt_param"; then
|
||||
sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
|
||||
configure.in.new > configure.in && mv configure.in configure.in.new
|
||||
fi
|
||||
sed -e "s#@MODULENAME@#$modulename#" configure.in.new |
|
||||
sed -e "s#@VERSION@#$VERSION#" > configure.in
|
||||
botfiles=`cat configure.files | egrep "configure.in.bot"`
|
||||
test -n "$botfiles" && cat $botfiles >> configure.in
|
||||
cat $admindir/configure.in.bot.end >> configure.in
|
||||
rm -f configure.in.new
|
||||
}
|
||||
|
||||
configure_files()
|
||||
{
|
||||
echo "*** Creating configure.files"
|
||||
admindir=NO
|
||||
for i in . .. ../.. ../../..; do
|
||||
if test -x $i/admin; then admindir=$i/admin; break; fi
|
||||
done
|
||||
rm -f configure.files
|
||||
touch configure.files
|
||||
if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then
|
||||
echo $admindir/configure.in.min >> configure.files
|
||||
fi
|
||||
test -f configure.in.in && echo configure.in.in >> configure.files
|
||||
# we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs
|
||||
if test -f inst-apps; then
|
||||
inst=`cat inst-apps`
|
||||
list=""
|
||||
for i in $inst; do
|
||||
list="$list `find $i/ -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
|
||||
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`"
|
||||
done
|
||||
else
|
||||
list=`find . -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
|
||||
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
|
||||
fi
|
||||
for i in $list; do if test -f $i && test `dirname $i` != "." ; then
|
||||
echo $i >> configure.files
|
||||
fi; done
|
||||
test -f configure.in.mid && echo configure.in.mid >> configure.files
|
||||
test -f configure.in.bot && echo configure.in.bot >> configure.files
|
||||
if test ! -s configure.files; then
|
||||
echo "There are no files to build a configure. Please check your checkout."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
create_subdirs()
|
||||
{
|
||||
if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then
|
||||
# as many modules contain rules to create subdirs without any
|
||||
# dependencies make won't create it unless there is no file.
|
||||
# so we check if that's a dummy rule or one that works
|
||||
rm -f subdirs.cvs.sh.$$
|
||||
if test -f subdirs; then
|
||||
mv subdirs subdirs.cvs.sh.$$
|
||||
fi
|
||||
strip_makefile
|
||||
$MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1
|
||||
if test -f subdirs.cvs.sh.$$; then
|
||||
if test -s subdirs; then
|
||||
rm subdirs.cvs.sh.$$
|
||||
else
|
||||
mv subdirs.cvs.sh.$$ subdirs
|
||||
fi
|
||||
fi
|
||||
else
|
||||
subdirs
|
||||
fi
|
||||
}
|
||||
|
||||
subdirs()
|
||||
{
|
||||
dirs=
|
||||
idirs=
|
||||
if test -f inst-apps; then
|
||||
idirs=`cat inst-apps`
|
||||
else
|
||||
idirs=`ls -1 | sort`
|
||||
fi
|
||||
|
||||
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
|
||||
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
|
||||
for i in $idirs; do
|
||||
if test -f $i/Makefile.am; then
|
||||
case " $compilefirst $compilelast " in
|
||||
*" $i "*) ;;
|
||||
*) dirs="$dirs $i"
|
||||
esac
|
||||
fi
|
||||
done
|
||||
|
||||
: > ./_SUBDIRS
|
||||
|
||||
for d in $compilefirst; do
|
||||
echo $d >> ./_SUBDIRS
|
||||
done
|
||||
|
||||
(for d in $dirs; do
|
||||
list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
|
||||
for s in $list; do
|
||||
echo $s $d
|
||||
done
|
||||
list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
|
||||
for s in $list; do
|
||||
echo $d $s
|
||||
done
|
||||
echo $d $d
|
||||
done ) | tsort >> ./_SUBDIRS
|
||||
|
||||
for d in $compilelast; do
|
||||
echo $d >> ./_SUBDIRS
|
||||
done
|
||||
|
||||
if test -r subdirs && cmp -s subdirs _SUBDIRS; then
|
||||
rm -f _SUBDIRS
|
||||
fi
|
||||
test -r _SUBDIRS && mv _SUBDIRS subdirs || true
|
||||
}
|
||||
|
||||
Makefile_am()
|
||||
{
|
||||
if test -f Makefile.am.in; then
|
||||
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
|
||||
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
|
||||
|
||||
idirs=
|
||||
dirs=
|
||||
if test -f inst-apps; then
|
||||
idirs=`cat inst-apps`
|
||||
else
|
||||
idirs=`cat subdirs`
|
||||
fi
|
||||
for i in $idirs; do
|
||||
case " $compilefirst $compilelast " in
|
||||
*" $i "*) ;;
|
||||
*) dirs="$dirs $i"
|
||||
esac
|
||||
done
|
||||
|
||||
adds=`fgrep '$(top_srcdir)/acinclude.m4:' Makefile.am.in | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir)/,,g'`
|
||||
if echo "$adds" | fgrep "*" >/dev/null ; then
|
||||
adds=`ls -d -1 $adds 2>/dev/null`
|
||||
fgrep -v '$(top_srcdir)/acinclude.m4:' Makefile.am.in > Makefile.am.in.adds
|
||||
str='$(top_srcdir)/acinclude.m4:'
|
||||
for add in $adds; do
|
||||
str="$str \$(top_srcdir)/$add"
|
||||
done
|
||||
echo $str >> Makefile.am.in.adds
|
||||
else
|
||||
cat Makefile.am.in > Makefile.am.in.adds
|
||||
fi
|
||||
|
||||
cat Makefile.am.in.adds | \
|
||||
sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \
|
||||
sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am
|
||||
echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
|
||||
rm Makefile.am.in.adds
|
||||
fi
|
||||
}
|
||||
|
||||
acinclude_m4()
|
||||
{
|
||||
echo "*** Creating acinclude.m4"
|
||||
adds=
|
||||
if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then
|
||||
strip_makefile
|
||||
rm -f acinclude.m4
|
||||
adds=`grep '\$(top_srcdir)/acinclude.m4:' $makefile_wo | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir),.,g'`
|
||||
if echo $adds | fgrep "*" >/dev/null ; then
|
||||
adds=`ls -d -1 $adds 2>/dev/null`
|
||||
else
|
||||
$MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 || exit 1
|
||||
fi
|
||||
else
|
||||
rm -f acinclude.m4
|
||||
fi
|
||||
# if it wasn't created up to now, then we do it better
|
||||
if test ! -f acinclude.m4; then
|
||||
cat admin/acinclude.m4.in admin/libtool.m4.in admin/pkg.m4.in $adds > acinclude.m4
|
||||
fi
|
||||
}
|
||||
|
||||
cvs_clean()
|
||||
{
|
||||
if test -d CVS; then :; else
|
||||
echo "You don't have a toplevel CVS directory."
|
||||
echo "You most certainly didn't use cvs to get these sources."
|
||||
echo "But this function depends on cvs's information."
|
||||
exit 1
|
||||
fi
|
||||
perl $admindir/cvs-clean.pl
|
||||
}
|
||||
|
||||
package_merge()
|
||||
{
|
||||
catalogs=$POFILES
|
||||
for cat in $catalogs; do
|
||||
msgmerge -o $cat.new $cat $PACKAGE.pot
|
||||
if test -s $cat.new; then
|
||||
grep -v "\"POT-Creation" $cat.new > $cat.new.2
|
||||
grep -v "\"POT-Creation" $cat >> $cat.new.1
|
||||
if diff $cat.new.1 $cat.new.2; then
|
||||
rm $cat.new
|
||||
else
|
||||
mv $cat.new $cat
|
||||
fi
|
||||
rm -f $cat.new.1 $cat.new.2
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
extract_messages()
|
||||
{
|
||||
podir=${podir:-$PWD/po}
|
||||
files=`find . -name Makefile.am | xargs egrep -l '^messages:' `
|
||||
dirs=`for i in $files; do echo \`dirname $i\`; done`
|
||||
tmpname="$PWD/messages.log"
|
||||
if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
|
||||
if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
|
||||
export EXTRACTRC PREPARETIPS
|
||||
|
||||
for subdir in $dirs; do
|
||||
test -z "$VERBOSE" || echo "Making messages in $subdir"
|
||||
(cd $subdir
|
||||
if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
|
||||
$EXTRACTRC *.rc *.ui *.kcfg > rc.cpp
|
||||
else
|
||||
candidates=`ls -1 *.rc *.ui *.kcfg 2>/dev/null`
|
||||
if test -n "$candidates"; then
|
||||
echo "$subdir has *.rc, *.ui or *.kcfg files, but not correct messages line"
|
||||
fi
|
||||
fi
|
||||
if find . -name \*.c\* -o -name \*.h\* | fgrep -v ".svn" | xargs fgrep -s -q KAboutData ; then
|
||||
echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
|
||||
else echo " " > _translatorinfo.cpp
|
||||
fi
|
||||
perl -e '$mes=0; while (<STDIN>) { next if (/^(if\s|else\s|endif)/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile
|
||||
|
||||
kdepotpath=${includedir:-`kde-config --expandvars --install include`}/kde.pot
|
||||
|
||||
$MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" srcdir=. \
|
||||
XGETTEXT="${XGETTEXT:-xgettext} --foreign-user -C -ci18n -ki18n -ktr2i18n -kI18N_NOOP -kI18N_NOOP2 -kaliasLocale -x $kdepotpath" messages
|
||||
exit_code=$?
|
||||
if test "$exit_code" != 0; then
|
||||
echo "make exit code: $exit_code"
|
||||
fi
|
||||
) 2>&1 | grep -v '^make\[1\]' > $tmpname
|
||||
test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
|
||||
test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
|
||||
rm -f $subdir/_translatorinfo.cpp
|
||||
rm -f $subdir/_transMakefile
|
||||
done
|
||||
rm -f $tmpname
|
||||
}
|
||||
|
||||
package_messages()
|
||||
{
|
||||
rm -rf po.backup
|
||||
mkdir po.backup
|
||||
|
||||
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
|
||||
egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
|
||||
cat po/$i > po.backup/backup_$i
|
||||
touch -r po/$i po.backup/backup_$i
|
||||
rm po/$i
|
||||
done
|
||||
|
||||
extract_messages
|
||||
|
||||
for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
|
||||
test -f po/$i || echo "disappeared: $i"
|
||||
done
|
||||
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
|
||||
sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po/$i > po/$i.new && mv po/$i.new po/$i
|
||||
#msgmerge -q -o po/$i po/$i po/$i
|
||||
egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
|
||||
if test -f po.backup/$i && ! cmp -s temp.pot po.backup/$i; then
|
||||
echo "will update $i"
|
||||
else
|
||||
if test -f po.backup/backup_$i; then
|
||||
test -z "$VERBOSE" || echo "I'm restoring $i"
|
||||
mv po.backup/backup_$i po/$i
|
||||
rm po.backup/$i
|
||||
else
|
||||
echo "will add $i"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm -f temp.pot
|
||||
rm -rf po.backup
|
||||
}
|
||||
|
||||
unset LC_ALL || :
|
||||
unset LANG || :
|
||||
unset LC_CTYPE || :
|
||||
unset LANGUAGE || :
|
||||
|
||||
unset CDPATH || :
|
||||
admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
|
||||
test "x$admindir" = "x$0" && admindir=.
|
||||
|
||||
test "x$MAKE" = x && MAKE=make
|
||||
makefile_am=Makefile.am
|
||||
makefile_wo=Makefile.am.wo
|
||||
if test -f Makefile.am.in; then
|
||||
makefile_am=Makefile.am.in
|
||||
makefile_wo=Makefile.am.in.wo
|
||||
rm -f $makefile_wo
|
||||
fi
|
||||
|
||||
# Suck in the AUTOCONF detection code
|
||||
. $admindir/detect-autoconf.sh
|
||||
|
||||
###
|
||||
### Main
|
||||
###
|
||||
|
||||
arg=`echo $1 | tr .- __`
|
||||
case $arg in
|
||||
cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
|
||||
cvs_clean | package_merge | package_messages | Makefile_am | acinclude_m4 | extract_messages ) $arg ;;
|
||||
configure ) call_and_fix_autoconf ;;
|
||||
* ) echo "Usage: cvs.sh <target>"
|
||||
echo "Target can be one of:"
|
||||
echo " cvs cvs-clean dist"
|
||||
echo " configure.in configure.files"
|
||||
echo " package-merge package-messages"
|
||||
echo ""
|
||||
echo "Usage: anything but $1"
|
||||
exit 1 ;;
|
||||
esac
|
||||
|
||||
if test -f $makefile_wo; then
|
||||
rm $makefile_wo
|
||||
fi
|
||||
|
||||
exit 0
|
@ -0,0 +1,43 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
use Shell qw(mv cp mkdir rm) ;
|
||||
use File::Find;
|
||||
use Cwd;
|
||||
|
||||
$origPwd = `pwd`;
|
||||
chomp $origPwd;
|
||||
|
||||
$kde_prefix = "/usr";
|
||||
$sysconfdir = "/etc";
|
||||
$kde_includedir = "$kde_prefix/include/kde";
|
||||
$infodir = "$kde_prefix/share/info";
|
||||
$mandir = "$kde_prefix/share/man";
|
||||
$qtdir = "/usr/share/qt3";
|
||||
|
||||
$kde_cgidir = "$kde_prefix/lib/cgi-bin";
|
||||
$kde_confdir = "$sysconfdir/kde3";
|
||||
$kde_htmldir = "$kde_prefix/share/doc/kde/HTML";
|
||||
|
||||
if (defined $ENV{DEB_BUILD_OPTIONS} &&
|
||||
$ENV{DEB_BUILD_OPTIONS} =~ /\bnostrip\b/) {
|
||||
$enable_debug="--enable-debug=full";
|
||||
} else {
|
||||
$enable_debug="--disable-debug";
|
||||
}
|
||||
|
||||
if (@ARGV && $ARGV[0] eq 'echodirs') {
|
||||
print STDOUT "export kde_prefix=$kde_prefix\n";
|
||||
print STDOUT "export sysconfdir=$sysconfdir\n";
|
||||
print STDOUT "export kde_includedir=$kde_includedir\n";
|
||||
print STDOUT "export infodir=$infodir\n";
|
||||
print STDOUT "export mandir=$mandir\n";
|
||||
print STDOUT "export qtdir=$qtdir\n";
|
||||
|
||||
print STDOUT "export kde_cgidir=$kde_cgidir\n";
|
||||
print STDOUT "export kde_confdir=$kde_confdir\n";
|
||||
print STDOUT "export kde_htmldir=$kde_htmldir\n";
|
||||
|
||||
print STDOUT "configkde=$enable_debug --disable-rpath --prefix=\$(kde_prefix) --sysconfdir=\$(sysconfdir) --includedir=\$(kde_includedir) --infodir=\$(infodir) --mandir=\$(mandir) --with-qt-dir=\$(qtdir)\n";
|
||||
|
||||
exit
|
||||
}
|
@ -0,0 +1,441 @@
|
||||
#! /bin/sh
|
||||
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
# Copyright 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
# 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, 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.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
# `libtool' can also be set to `yes' or `no'.
|
||||
|
||||
depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
|
||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
|
||||
# Some modes work just like other modes, but use different flags. We
|
||||
# parameterize here, but still list the modes in the big case below,
|
||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||
# here, because this file can only contain one case statement.
|
||||
if test "$depmode" = hp; then
|
||||
# HP compiler uses -M and no extra arg.
|
||||
gccflag=-M
|
||||
depmode=gcc
|
||||
fi
|
||||
|
||||
if test "$depmode" = dashXmstdout; then
|
||||
# This is just like dashmstdout with a different argument.
|
||||
dashmflag=-xM
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
## - Don't want to use -MD because we'd like the dependencies to end
|
||||
## up in a subdir. Having to rename by hand is ugly.
|
||||
## (We might end up doing this anyway to support other compilers.)
|
||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||
## -MM, not -M (despite what the docs say).
|
||||
## - Using -M directly means running the compiler twice (even worse
|
||||
## than renaming).
|
||||
if test -z "$gccflag"; then
|
||||
gccflag=-MD,
|
||||
fi
|
||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||
## The second -e expression handles DOS-style file names with drive letters.
|
||||
sed -e 's/^[^:]*: / /' \
|
||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||
## This next piece of magic avoids the `deleted header file' problem.
|
||||
## The problem is that when a header file which appears in a .P file
|
||||
## is deleted, the dependency causes make to die (because there is
|
||||
## typically no way to rebuild the header). We avoid this by adding
|
||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||
## this for us directly.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" |
|
||||
## Some versions of gcc put a space before the `:'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
sgi)
|
||||
if test "$libtool" = yes; then
|
||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||
else
|
||||
"$@" -MDupdate "$tmpdepfile"
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
|
||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
||||
# Clip off the initial element (the dependent). Don't try to be
|
||||
# clever and replace this with sed code, as IRIX sed won't handle
|
||||
# lines with more than a fixed number of characters (4096 in
|
||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||
# dependency line.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> $depfile
|
||||
echo >> $depfile
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> $depfile
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
aix)
|
||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||
# in a .u file. This file always lives in the current directory.
|
||||
# Also, the AIX compiler puts `$object:' at the start of each line;
|
||||
# $object doesn't have directory information.
|
||||
stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
|
||||
tmpdepfile="$stripped.u"
|
||||
outname="$stripped.o"
|
||||
if test "$libtool" = yes; then
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
"$@" -M
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
if test -f "$tmpdepfile"; then
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
icc)
|
||||
# Must come before tru64.
|
||||
|
||||
# Intel's C compiler understands `-MD -MF file'. However
|
||||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||
# will fill foo.d with something like
|
||||
# foo.o: sub/foo.c
|
||||
# foo.o: sub/foo.h
|
||||
# which is wrong. We want:
|
||||
# sub/foo.o: sub/foo.c
|
||||
# sub/foo.o: sub/foo.h
|
||||
# sub/foo.c:
|
||||
# sub/foo.h:
|
||||
|
||||
"$@" -MD -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
sed -e "s,^[^:]*: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 AIX compiler uses -MD to generate dependencies as a side
|
||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||
# dependencies in `foo.d' instead, so we check for that too.
|
||||
# Subdirectories are respected.
|
||||
|
||||
tmpdepfile1="$object.d"
|
||||
tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'`
|
||||
if test "$libtool" = yes; then
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
if test -f "$tmpdepfile1"; then
|
||||
tmpdepfile="$tmpdepfile1"
|
||||
else
|
||||
tmpdepfile="$tmpdepfile2"
|
||||
fi
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a space and a tab in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
#nosideeffect)
|
||||
# This comment above is used by automake to tell side-effect
|
||||
# dependency tracking mechanisms from slower ones.
|
||||
|
||||
dashmstdout)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the proprocessed file to stdout, regardless of -o,
|
||||
# because we must use -o when running libtool.
|
||||
test -z "$dashmflag" && dashmflag=-M
|
||||
( IFS=" "
|
||||
case " $* " in
|
||||
*" --mode=compile "*) # this is libtool, let us make it quiet
|
||||
for arg
|
||||
do # cycle over the arguments
|
||||
case "$arg" in
|
||||
"--mode=compile")
|
||||
# insert --quiet before "--mode=compile"
|
||||
set fnord "$@" --quiet
|
||||
shift # fnord
|
||||
;;
|
||||
esac
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # "$arg"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
"$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||
) &
|
||||
proc=$!
|
||||
"$@"
|
||||
stat=$?
|
||||
wait "$proc"
|
||||
if test "$stat" != 0; then exit $stat; fi
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
dashXmstdout)
|
||||
# This case only exists to satisfy depend.m4. It is never actually
|
||||
# run, as this mode is specially recognized in the preamble.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
makedepend)
|
||||
# X makedepend
|
||||
(
|
||||
shift
|
||||
cleared=no
|
||||
for arg in "$@"; do
|
||||
case $cleared in no)
|
||||
set ""; shift
|
||||
cleared=yes
|
||||
esac
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift;;
|
||||
-*)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift;;
|
||||
esac
|
||||
done
|
||||
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
) &
|
||||
proc=$!
|
||||
"$@"
|
||||
stat=$?
|
||||
wait "$proc"
|
||||
if test "$stat" != 0; then exit $stat; fi
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
tail +3 "$tmpdepfile" | tr ' ' '
|
||||
' | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||
;;
|
||||
|
||||
cpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the proprocessed file to stdout, regardless of -o,
|
||||
# because we must use -o when running libtool.
|
||||
( IFS=" "
|
||||
case " $* " in
|
||||
*" --mode=compile "*)
|
||||
for arg
|
||||
do # cycle over the arguments
|
||||
case $arg in
|
||||
"--mode=compile")
|
||||
# insert --quiet before "--mode=compile"
|
||||
set fnord "$@" --quiet
|
||||
shift # fnord
|
||||
;;
|
||||
esac
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # "$arg"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
"$@" -E |
|
||||
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
) &
|
||||
proc=$!
|
||||
"$@"
|
||||
stat=$?
|
||||
wait "$proc"
|
||||
if test "$stat" != 0; then exit $stat; fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
cat < "$tmpdepfile" >> "$depfile"
|
||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the proprocessed file to stdout, regardless of -o,
|
||||
# because we must use -o when running libtool.
|
||||
( IFS=" "
|
||||
case " $* " in
|
||||
*" --mode=compile "*)
|
||||
for arg
|
||||
do # cycle over the arguments
|
||||
case $arg in
|
||||
"--mode=compile")
|
||||
# insert --quiet before "--mode=compile"
|
||||
set fnord "$@" --quiet
|
||||
shift # fnord
|
||||
;;
|
||||
esac
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # "$arg"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
"$@" -E |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||
) &
|
||||
proc=$!
|
||||
"$@"
|
||||
stat=$?
|
||||
wait "$proc"
|
||||
if test "$stat" != 0; then exit $stat; fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown depmode $depmode" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
@ -0,0 +1,19 @@
|
||||
$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in $(top_srcdir)/admin/cvs.sh $(top_srcdir)/admin/pkg.m4.in
|
||||
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh acinclude_m4
|
||||
|
||||
$(top_srcdir)/configure.in: $(top_srcdir)/subdirs $(top_srcdir)/configure.files $(top_srcdir)/admin/cvs.sh
|
||||
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure_in
|
||||
|
||||
$(top_srcdir)/configure.files: $(top_srcdir)/subdirs $(CONF_FILES)
|
||||
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure.files $(top_srcdir)/admin/cvs.sh
|
||||
|
||||
$(top_srcdir)/Makefile.am: $(top_srcdir)/Makefile.am.in $(top_srcdir)/subdirs $(top_srcdir)/admin/cvs.sh
|
||||
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh Makefile_am
|
||||
|
||||
$(top_srcdir)/subdirs: $(top_srcdir)/Makefile.am.in $(top_srcdir)/admin/cvs.sh
|
||||
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh subdirs
|
||||
|
||||
# defining default rules for files that may not be present
|
||||
$(top_srcdir)/Makefile.am.in:
|
||||
$(CONF_FILES):
|
||||
|
@ -0,0 +1,59 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Global variables...
|
||||
AUTOCONF="autoconf"
|
||||
AUTOHEADER="autoheader"
|
||||
AUTOM4TE="autom4te"
|
||||
AUTOMAKE="automake"
|
||||
ACLOCAL="aclocal"
|
||||
|
||||
# Please add higher versions first. The last version number is the minimum
|
||||
# needed to compile KDE. Do not forget to include the name/version #
|
||||
# separator if one is present, e.g. -1.2 where - is the separator.
|
||||
KDE_AUTOCONF_VERS="-2.58 -2.57 257 -2.54 -2.53a -2.53 -2.52 -2.5x"
|
||||
KDE_AUTOMAKE_VERS="-1.7 17 -1.6"
|
||||
|
||||
# We don't use variable here for remembering the type ... strings. Local
|
||||
# variables are not that portable, but we fear namespace issues with our
|
||||
# includer.
|
||||
checkAutoconf()
|
||||
{
|
||||
for kde_autoconf_version in $KDE_AUTOCONF_VERS; do
|
||||
if test -x "`$WHICH $AUTOCONF$kde_autoconf_version 2>/dev/null`"; then
|
||||
AUTOCONF="`$WHICH $AUTOCONF$kde_autoconf_version`"
|
||||
AUTOHEADER="`$WHICH $AUTOHEADER$kde_autoconf_version`"
|
||||
AUTOM4TE="`$WHICH $AUTOM4TE$kde_autoconf_version`"
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
checkAutomake ()
|
||||
{
|
||||
for kde_automake_version in $KDE_AUTOMAKE_VERS; do
|
||||
if test -x "`$WHICH $AUTOMAKE$kde_automake_version 2>/dev/null`"; then
|
||||
AUTOMAKE="`$WHICH $AUTOMAKE$kde_automake_version`"
|
||||
ACLOCAL="`$WHICH $ACLOCAL$kde_automake_version`"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if test "$UNSERMAKE" != no && test -x "`$WHICH unsermake 2>/dev/null`"; then
|
||||
AUTOMAKE="`$WHICH unsermake` -c"
|
||||
fi
|
||||
}
|
||||
|
||||
checkWhich ()
|
||||
{
|
||||
WHICH=""
|
||||
for i in "type -p" "which" "type" ; do
|
||||
T=`$i sh 2> /dev/null`
|
||||
test -x "$T" && WHICH="$i" && break
|
||||
done
|
||||
}
|
||||
|
||||
checkWhich
|
||||
checkAutoconf
|
||||
checkAutomake
|
||||
|
||||
export WHICH AUTOHEADER AUTOCONF AUTOM4TE AUTOMAKE ACLOCAL
|
@ -0,0 +1,276 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# install - install a program, script, or datafile
|
||||
# This comes from X11R5 (mit/util/scripts/install.sh).
|
||||
#
|
||||
# Copyright 1991 by the Massachusetts Institute of Technology
|
||||
#
|
||||
# Permission to use, copy, modify, distribute, and sell this software and its
|
||||
# documentation for any purpose is hereby granted without fee, provided that
|
||||
# the above copyright notice appear in all copies and that both that
|
||||
# copyright notice and this permission notice appear in supporting
|
||||
# documentation, and that the name of M.I.T. not be used in advertising or
|
||||
# publicity pertaining to distribution of the software without specific,
|
||||
# written prior permission. M.I.T. makes no representations about the
|
||||
# suitability of this software for any purpose. It is provided "as is"
|
||||
# without express or implied warranty.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch. It can only install one file at a time, a restriction
|
||||
# shared with many OS's install programs.
|
||||
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
|
||||
transformbasename=""
|
||||
transform_arg=""
|
||||
instcmd="$mvprog"
|
||||
chmodcmd="$chmodprog 0755"
|
||||
chowncmd=""
|
||||
chgrpcmd=""
|
||||
stripcmd=""
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=""
|
||||
dst=""
|
||||
dir_arg=""
|
||||
|
||||
while [ x"$1" != x ]; do
|
||||
case $1 in
|
||||
-c) instcmd=$cpprog
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-s) stripcmd=$stripprog
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
*) if [ x"$src" = x ]
|
||||
then
|
||||
src=$1
|
||||
else
|
||||
# this colon is to work around a 386BSD /bin/sh bug
|
||||
:
|
||||
dst=$1
|
||||
fi
|
||||
shift
|
||||
continue;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ x"$src" = x ]
|
||||
then
|
||||
echo "$0: no input file specified" >&2
|
||||
exit 1
|
||||
else
|
||||
:
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]; then
|
||||
dst=$src
|
||||
src=""
|
||||
|
||||
if [ -d "$dst" ]; then
|
||||
instcmd=:
|
||||
chmodcmd=""
|
||||
else
|
||||
instcmd=$mkdirprog
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
|
||||
if [ -f "$src" ] || [ -d "$src" ]
|
||||
then
|
||||
:
|
||||
else
|
||||
echo "$0: $src does not exist" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ x"$dst" = x ]
|
||||
then
|
||||
echo "$0: no destination specified" >&2
|
||||
exit 1
|
||||
else
|
||||
:
|
||||
fi
|
||||
|
||||
# If destination is a directory, append the input filename; if your system
|
||||
# does not like double slashes in filenames, you may need to add some logic
|
||||
|
||||
if [ -d "$dst" ]
|
||||
then
|
||||
dst=$dst/`basename "$src"`
|
||||
else
|
||||
:
|
||||
fi
|
||||
fi
|
||||
|
||||
## this sed command emulates the dirname command
|
||||
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||
|
||||
# Make sure that the destination directory exists.
|
||||
# this part is taken from Noah Friedman's mkinstalldirs script
|
||||
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if [ ! -d "$dstdir" ]; then
|
||||
defaultIFS='
|
||||
'
|
||||
IFS="${IFS-$defaultIFS}"
|
||||
|
||||
oIFS=$IFS
|
||||
# Some sh's can't handle IFS=/ for some reason.
|
||||
IFS='%'
|
||||
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||
IFS=$oIFS
|
||||
|
||||
pathcomp=''
|
||||
|
||||
while [ $# -ne 0 ] ; do
|
||||
pathcomp=$pathcomp$1
|
||||
shift
|
||||
|
||||
if [ ! -d "$pathcomp" ] ;
|
||||
then
|
||||
$mkdirprog "$pathcomp"
|
||||
else
|
||||
:
|
||||
fi
|
||||
|
||||
pathcomp=$pathcomp/
|
||||
done
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]
|
||||
then
|
||||
$doit $instcmd "$dst" &&
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
|
||||
else
|
||||
|
||||
# If we're going to rename the final executable, determine the name now.
|
||||
|
||||
if [ x"$transformarg" = x ]
|
||||
then
|
||||
dstfile=`basename "$dst"`
|
||||
else
|
||||
dstfile=`basename "$dst" $transformbasename |
|
||||
sed $transformarg`$transformbasename
|
||||
fi
|
||||
|
||||
# don't allow the sed command to completely eliminate the filename
|
||||
|
||||
if [ x"$dstfile" = x ]
|
||||
then
|
||||
dstfile=`basename "$dst"`
|
||||
else
|
||||
:
|
||||
fi
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
|
||||
dsttmp=$dstdir/#inst.$$#
|
||||
rmtmp=$dstdir/#rm.$$#
|
||||
|
||||
# Trap to clean up temp files at exit.
|
||||
|
||||
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Move or copy the file name to the temp name
|
||||
|
||||
$doit $instcmd "$src" "$dsttmp" &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits
|
||||
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
|
||||
|
||||
# Now remove or move aside any old file at destination location. We try this
|
||||
# two ways since rm can't unlink itself on some systems and the destination
|
||||
# file might be busy for other reasons. In this case, the final cleanup
|
||||
# might fail but the new file should still install successfully.
|
||||
|
||||
{
|
||||
if [ -f "$dstdir/$dstfile" ]
|
||||
then
|
||||
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
|
||||
$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
|
||||
{
|
||||
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
|
||||
(exit 1); exit
|
||||
}
|
||||
else
|
||||
:
|
||||
fi
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
|
||||
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
||||
|
||||
fi &&
|
||||
|
||||
# The final little trick to "correctly" pass the exit status to the exit trap.
|
||||
|
||||
{
|
||||
(exit 0); exit
|
||||
}
|
@ -0,0 +1,336 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# 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, 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.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run=:
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
if test -f configure.ac; then
|
||||
configure_ac=configure.ac
|
||||
else
|
||||
configure_ac=configure.in
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
shift
|
||||
"$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case "$1" in
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||
error status if there is no known handling for PROGRAM.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
--run try to run the given command, and emulate it if it fails
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
help2man touch the output file
|
||||
lex create \`lex.yy.c', if possible, from existing .c
|
||||
makeinfo touch the output file
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing 0.4 - GNU automake"
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: Unknown \`$1' option"
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
aclocal*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||
any GNU archive site."
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||
archive site."
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||
from any GNU archive site."
|
||||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case "$f" in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
esac
|
||||
done
|
||||
touch $touch_files
|
||||
;;
|
||||
|
||||
automake*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||
You might want to install the \`Automake' and \`Perl' packages.
|
||||
Grab them from any GNU archive site."
|
||||
find . -type f -name Makefile.am -print |
|
||||
sed 's/\.am$/.in/' |
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and you do not seem to have it handy on your
|
||||
system. You might have modified some files without having the
|
||||
proper tools for further handling them.
|
||||
You can get \`$1Help2man' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
|
||||
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo "#! /bin/sh"
|
||||
echo "# Created by GNU Automake missing as a replacement of"
|
||||
echo "# $ $@"
|
||||
echo "exit 0"
|
||||
chmod +x $file
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
bison|yacc)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if [ $# -ne 1 ]; then
|
||||
eval LASTARG="\${$#}"
|
||||
case "$LASTARG" in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -f y.tab.h ]; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if [ ! -f y.tab.c ]; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex|flex)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified a \`.l' file. You may need the \`Flex' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if [ $# -ne 1 ]; then
|
||||
eval LASTARG="\${$#}"
|
||||
case "$LASTARG" in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -f lex.yy.c ]; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
\`Help2man' package in order for those modifications to take
|
||||
effect. You can get \`Help2man' from any GNU archive site."
|
||||
|
||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||
if test -z "$file"; then
|
||||
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
||||
fi
|
||||
if [ -f "$file" ]; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo)
|
||||
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
|
||||
# We have makeinfo, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
indirectly affecting the aspect of the manual. The spurious
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||
if test -z "$file"; then
|
||||
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
|
||||
fi
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar)
|
||||
shift
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
# messages.
|
||||
if (gnutar --version > /dev/null 2>&1); then
|
||||
gnutar "$@" && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar "$@" && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case "$firstarg" in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case "$firstarg" in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||
You may want to install GNU tar or Free paxutils, or check the
|
||||
command line arguments."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and you do not seem to have it handy on your
|
||||
system. You might have modified some files without having the
|
||||
proper tools for further handling them. Check the \`README' file,
|
||||
it often tells you about the needed prerequirements for installing
|
||||
this package. You may also peek at any GNU archive site, in case
|
||||
some other package would contain this missing \`$1' program."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
@ -0,0 +1,111 @@
|
||||
#! /bin/sh
|
||||
# mkinstalldirs --- make directory hierarchy
|
||||
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||
# Created: 1993-05-16
|
||||
# Public domain
|
||||
|
||||
errstatus=0
|
||||
dirmode=""
|
||||
|
||||
usage="\
|
||||
Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
|
||||
|
||||
# process command line arguments
|
||||
while test $# -gt 0 ; do
|
||||
case $1 in
|
||||
-h | --help | --h*) # -h for help
|
||||
echo "$usage" 1>&2
|
||||
exit 0
|
||||
;;
|
||||
-m) # -m PERM arg
|
||||
shift
|
||||
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
|
||||
dirmode=$1
|
||||
shift
|
||||
;;
|
||||
--) # stop option processing
|
||||
shift
|
||||
break
|
||||
;;
|
||||
-*) # unknown option
|
||||
echo "$usage" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
*) # first non-opt arg
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
for file
|
||||
do
|
||||
if test -d "$file"; then
|
||||
shift
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
case $# in
|
||||
0) exit 0 ;;
|
||||
esac
|
||||
|
||||
case $dirmode in
|
||||
'')
|
||||
if mkdir -p -- . 2>/dev/null; then
|
||||
echo "mkdir -p -- $*"
|
||||
exec mkdir -p -- "$@"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
|
||||
echo "mkdir -m $dirmode -p -- $*"
|
||||
exec mkdir -m "$dirmode" -p -- "$@"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
for file
|
||||
do
|
||||
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
|
||||
shift
|
||||
|
||||
pathcomp=
|
||||
for d
|
||||
do
|
||||
pathcomp="$pathcomp$d"
|
||||
case $pathcomp in
|
||||
-*) pathcomp=./$pathcomp ;;
|
||||
esac
|
||||
|
||||
if test ! -d "$pathcomp"; then
|
||||
echo "mkdir $pathcomp"
|
||||
|
||||
mkdir "$pathcomp" || lasterr=$?
|
||||
|
||||
if test ! -d "$pathcomp"; then
|
||||
errstatus=$lasterr
|
||||
else
|
||||
if test ! -z "$dirmode"; then
|
||||
echo "chmod $dirmode $pathcomp"
|
||||
lasterr=""
|
||||
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
||||
|
||||
if test ! -z "$lasterr"; then
|
||||
errstatus=$lasterr
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
pathcomp="$pathcomp/"
|
||||
done
|
||||
done
|
||||
|
||||
exit $errstatus
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# End:
|
||||
# mkinstalldirs ends here
|
@ -0,0 +1,371 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
# Check namespace cleanness of a library.
|
||||
# Allowed symbols are passed as arguments.
|
||||
# They may have trailing * = wildcard.
|
||||
# Wildcards may be also specified as *::* (e.g. K*::* for all KDE classes)
|
||||
# Symbols are listed as full function unmangled names without arguments,
|
||||
# e.g. 'foo bar* nspace::*' allows foo(), foo(int), bar(), barbar()
|
||||
# and all symbols in namespace/class nspace.
|
||||
# If an argument has comma in it, it's a filename of a file containing
|
||||
# allowed symbols, one per line.
|
||||
|
||||
|
||||
$thisProg = "$0"; # This programs name
|
||||
|
||||
$library = "";
|
||||
$allowed_symbols = "";
|
||||
$debug = 0;
|
||||
$allowed_weak = "";
|
||||
$weak_specified = 0;
|
||||
|
||||
while( defined( $ARGV[ 0 ] ))
|
||||
{
|
||||
$_ = shift;
|
||||
if( /^--verbose$|^-v$/ )
|
||||
{
|
||||
$debug = 1;
|
||||
}
|
||||
elsif( /^--help$|^-h$/ )
|
||||
{
|
||||
print STDOUT "Usage $thisProg [OPTION] ... library [allowed symbols] ...\n",
|
||||
"\n",
|
||||
"Check if the given library has only allowed public symbols.\n",
|
||||
"\n",
|
||||
" --allowweak=[symbol] allow only these weak symbols\n",
|
||||
" -v, --verbose verbosely list files processed\n",
|
||||
" -h, --help print this help, then exit\n";
|
||||
exit 0;
|
||||
}
|
||||
elsif( /^--allowweak=(.*)$/ )
|
||||
{
|
||||
$allowed_weak .= " " . $1;
|
||||
$weak_specified = 1;
|
||||
}
|
||||
elsif( /^--allowweak$/ ) # simply list all weak
|
||||
{
|
||||
$allowed_weak .= " ";
|
||||
$weak_specified = 1;
|
||||
}
|
||||
elsif( /^--*/ )
|
||||
{
|
||||
die "Invalid argument!\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if( ! $library )
|
||||
{
|
||||
$library = $_;
|
||||
}
|
||||
else
|
||||
{
|
||||
$allowed_symbols .= " " . $_;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( ! $weak_specified )
|
||||
{
|
||||
$allowed_weak = "*";
|
||||
# allow all weak symbols by default
|
||||
# instances of templates and similar stuff - unfortunately includes also things from other libraries,
|
||||
# so it cannot be on by default
|
||||
}
|
||||
|
||||
print STDERR "library:" . $library . "\n" if $debug;
|
||||
print STDERR "allowed_symbols:" . $allowed_symbols . "\n" if $debug;
|
||||
print STDERR "allowed_weak:" . $allowed_weak . "\n" if $debug;
|
||||
|
||||
$default_symbols = "_fini _init"; # system symbols
|
||||
# on my system, every .so has :
|
||||
# A _DYNAMIC
|
||||
# A _GLOBAL_OFFSET_TABLE_
|
||||
# A __bss_start
|
||||
# A _edata
|
||||
# A _end
|
||||
# T _fini
|
||||
# T _init
|
||||
# no need to list A symbols in $default_symbols
|
||||
|
||||
print STDERR "default_symbols: " . $default_symbols . "\n" if $debug;
|
||||
|
||||
print STDOUT "Namespace cleanness check for " . $library . " :\n";
|
||||
|
||||
$lib_file = "";
|
||||
if( $library =~ /\.la$/ )
|
||||
{
|
||||
# get the real library file from .la
|
||||
open( FILEIN, $library ) || die "Couldn't open $! !\n";
|
||||
while( $line = <FILEIN> )
|
||||
{
|
||||
if( $line =~ /library_names=\'([^ ]*).*/o )
|
||||
{
|
||||
$lib_file = $1;
|
||||
}
|
||||
}
|
||||
close( FILEIN );
|
||||
if( ! $lib_file )
|
||||
{
|
||||
print STDERR "Library file not found in .la file!\n";
|
||||
exit 1;
|
||||
}
|
||||
my $libpath = $library;
|
||||
$libpath =~ s%[^/]*$%%;
|
||||
if( -e $libpath . ".libs/" . $lib_file )
|
||||
{
|
||||
$lib_file = $libpath . ".libs/" . $lib_file;
|
||||
}
|
||||
else
|
||||
{
|
||||
$lib_file = $libpath . $lib_file;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$lib_file = $library;
|
||||
}
|
||||
|
||||
print STDERR "libfile: ". $lib_file . "\n" if $debug;
|
||||
|
||||
$allowed_symbols .= " " . $default_symbols;
|
||||
|
||||
sub process_symbols($\@\%\@);
|
||||
|
||||
@wildcards = ();
|
||||
%exacts = ();
|
||||
@regwildcards = ();
|
||||
process_symbols( $allowed_symbols, @wildcards, %exacts, @regwildcards );
|
||||
@weak_wildcards = ();
|
||||
%weak_exacts = ();
|
||||
@weak_regwildcards = ();
|
||||
process_symbols( $allowed_weak, @weak_wildcards, %weak_exacts, @weak_regwildcards );
|
||||
|
||||
# grep is for stripping not exported symbols, which don't have address (=first column)
|
||||
$nm_command = "nm -BDCg " . $lib_file . " | grep -v '^ ' |";
|
||||
|
||||
# TODO how portable is this nmcheck stuff?
|
||||
|
||||
print STDERR "nm command:" . $nm_command . "\n" if $debug;
|
||||
|
||||
open( FILEIN, $nm_command ) || die "nm command failed\n";
|
||||
|
||||
my $exit_code = 0;
|
||||
|
||||
while( $line = <FILEIN> )
|
||||
{
|
||||
my $type;
|
||||
my $symbol;
|
||||
if( $line =~ /^[^ ]* (.) (.*)$/o )
|
||||
{
|
||||
$type = $1;
|
||||
$symbol = $2;
|
||||
}
|
||||
else
|
||||
{
|
||||
die "Invalid line: " . $line . "\n";
|
||||
}
|
||||
|
||||
print STDERR "Type: " . $type . " , symbol: " . $symbol . "\n" if $debug;
|
||||
if( $type eq "A" )
|
||||
{ # these should be system symbols, so ignore them
|
||||
next;
|
||||
}
|
||||
|
||||
my $orig_symbol = $symbol;
|
||||
|
||||
if( $symbol =~ /\(anonymous namespace\)/o )
|
||||
{ # TODO tell to prefer named namespaces? (shorter symbols)
|
||||
next;
|
||||
}
|
||||
|
||||
# strip prefixes
|
||||
# the :: appending is to make "CLASS::*" work also for "vtable for CLASS"
|
||||
$symbol =~ s/^typeinfo for (.*)$/$1::/o;
|
||||
$symbol =~ s/^typeinfo fn for (.*)$/$1::/o;
|
||||
$symbol =~ s/^typeinfo name for (.*)$/$1::/o;
|
||||
$symbol =~ s/^vtable for (.*)$/$1::/o;
|
||||
$symbol =~ s/^guard variable for (.*)$/$1::/o;
|
||||
$symbol =~ s/^reference temporary for (.*)$/$1::/o;
|
||||
$symbol =~ s/^VTT for (.*)$/$1::/o;
|
||||
$symbol =~ s/^virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
|
||||
$symbol =~ s/^non-virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
|
||||
$symbol =~ s/^covariant return thunk \[[^\]]*\] to (.*)$/$1::/o;
|
||||
$symbol =~ s/^construction vtable thunk for (.*)$/$1::/o;
|
||||
$symbol =~ s/^construction vtable for .*-in-(.*) [0-9]*$/$1::/o;
|
||||
|
||||
# templates seem to have also return types mangled in their name, and nm prints it too
|
||||
# they have also template arguments in the symbol
|
||||
# get rid of both of those
|
||||
while( $symbol =~ /<.*>/o )
|
||||
{
|
||||
$symbol =~ s/<[^<>]*>//o; # strip innermost <>
|
||||
}
|
||||
if( $symbol !~ /operator\(\)/o )
|
||||
{
|
||||
$symbol =~ s/ ?\(.*\).*$//o; # strip () and all after it
|
||||
}
|
||||
else
|
||||
{
|
||||
$symbol =~ s/(^|:| )operator\(\) ?\(.*\).*$//o; # strip () and all after it
|
||||
}
|
||||
$symbol =~ s/\[.*\] *$//o; # strip [in-charge] etc.
|
||||
if( $symbol =~ /(^|:| )operator /o )
|
||||
{
|
||||
$symbol =~ s/.* ([^\s]*)operator /$1/o; # strip everything before 'X::operator blah'
|
||||
}
|
||||
else
|
||||
{
|
||||
$symbol =~ s/.* ([^\s]+) *$/$1/o; # get last word (strip return type)
|
||||
}
|
||||
|
||||
# print STDERR "Processed symbol: " . $symbol . "\n" if $debug;
|
||||
|
||||
my $found = 0;
|
||||
if( $exacts{ $symbol } )
|
||||
{
|
||||
$found = 1;
|
||||
}
|
||||
if( ! $found )
|
||||
{
|
||||
for my $wild ( @wildcards )
|
||||
{
|
||||
if( index( $symbol, $wild ) == 0 )
|
||||
{
|
||||
$found = 1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
if( ! $found )
|
||||
{
|
||||
for my $wild ( @regwildcards )
|
||||
{
|
||||
if( $symbol =~ /^$wild$/ )
|
||||
{
|
||||
$found = 1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
if( ( ! $found ) && ( $type eq "W" || $type eq "V" ))
|
||||
{
|
||||
if( $weak_exacts{ $symbol } )
|
||||
{
|
||||
$found = 1;
|
||||
}
|
||||
if( ! $found )
|
||||
{
|
||||
for my $wild ( @weak_wildcards )
|
||||
{
|
||||
if( index( $symbol, $wild ) == 0 )
|
||||
{
|
||||
$found = 1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
if( ! $found )
|
||||
{
|
||||
for my $wild ( @weak_regwildcards )
|
||||
{
|
||||
if( $symbol =~ /^$wild$/ )
|
||||
{
|
||||
$found = 1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( ! $found )
|
||||
{
|
||||
print STDERR "Public symbol " . $orig_symbol . " is not allowed!\n";
|
||||
$exit_code = 1;
|
||||
}
|
||||
}
|
||||
|
||||
close( FILEIN );
|
||||
|
||||
print STDOUT $exit_code == 0 ? "OK\n" : "FAILED\n";
|
||||
|
||||
exit $exit_code;
|
||||
|
||||
sub process_symbols($\@\%\@)
|
||||
{
|
||||
my $allowed_symbols = $_[ 0 ];
|
||||
my $wildcards_ref = $_[ 1 ];
|
||||
my $exacts_ref = $_[ 2 ];
|
||||
my $regwildcards_ref = $_[ 3 ];
|
||||
|
||||
$allowed_symbols =~ s/^ *//o; # strip whitespace
|
||||
$allowed_symbols =~ s/ *$//o;
|
||||
|
||||
if( $allowed_symbols eq "NONE" )
|
||||
{
|
||||
$allowed_symbols = "";
|
||||
}
|
||||
|
||||
my @symbols1 = split( ' ', $allowed_symbols );
|
||||
my $i = 0;
|
||||
my @symbols2 = ();
|
||||
while( defined( $symbols1[ $i ] ))
|
||||
{
|
||||
my $symbol = $symbols1[ $i ];
|
||||
if( $symbol =~ /\./ ) # dot in name -> file
|
||||
{
|
||||
open( SYMIN, $symbol ) || die ( "Cannot open file " . $symbol . "!" );
|
||||
while( $line = <SYMIN> )
|
||||
{
|
||||
$line =~ s/^\s*//o; # strip whitespace
|
||||
$line =~ s/\s*$//o;
|
||||
if( $line !~ /^$/o # empty line
|
||||
&& $line !~ /^\s*#/ ) # comment line starting with #
|
||||
{
|
||||
$symbols2[ $#symbols2 + 1 ] = $line;
|
||||
}
|
||||
}
|
||||
close( SYMIN );
|
||||
}
|
||||
else
|
||||
{
|
||||
$symbols2[ $#symbols2 + 1 ] = $symbol;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$i = 0;
|
||||
while( defined( $symbols2[ $i ] ))
|
||||
{
|
||||
my $symbol = $symbols2[ $i ];
|
||||
if( $symbol =~ /__/
|
||||
|| $symbol =~ /^_[A-Z]/ )
|
||||
{ # ISO C++ 2.10.2
|
||||
die "Symbols containing a double underscore or beginning with an underscore and an upper-case letter are reserved!\n";
|
||||
}
|
||||
elsif( $symbol eq "main"
|
||||
|| $symbol eq "main*" )
|
||||
{
|
||||
die "Symbol main is not allowed!\n";
|
||||
}
|
||||
if( $symbol =~ /^([^\*]*)\*$/o # trailing * without any * before it
|
||||
&& $symbol !~ /operator\*$/o )
|
||||
{
|
||||
print STDERR "wildcard:" . $symbol . "\n" if $debug;
|
||||
$wildcards_ref->[ $#{$wildcards_ref} + 1 ] = $1;
|
||||
}
|
||||
elsif( $symbol =~ /\*$/o
|
||||
&& ( $symbol =~ /\*::/o || $symbol =~ /::\*/o )
|
||||
&& $symbol !~ /^\*/o
|
||||
&& $symbol !~ /operator\*$/o )
|
||||
{
|
||||
print STDERR "regwildcard:" . $symbol . "\n" if $debug;
|
||||
$symbol =~ s/\*/\.\*/go; # change * to .* (regexp)
|
||||
$regwildcards_ref->[ $#{$regwildcards_ref} + 1 ] = $symbol;
|
||||
}
|
||||
else
|
||||
{
|
||||
print STDERR "exact:" . $symbol . "\n" if $debug;
|
||||
$exacts_ref->{ $symbol } = 1;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
@ -0,0 +1,192 @@
|
||||
### -*- autoconf -*-
|
||||
|
||||
dnl This file is part of the KDE libraries/packages
|
||||
dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu)
|
||||
dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org)
|
||||
|
||||
dnl This file is free software; you can redistribute it and/or
|
||||
dnl modify it under the terms of the GNU Library General Public
|
||||
dnl License as published by the Free Software Foundation; either
|
||||
dnl version 2 of the License, or (at your option) any later version.
|
||||
|
||||
dnl This library is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
dnl Library General Public License for more details.
|
||||
|
||||
dnl You should have received a copy of the GNU Library General Public License
|
||||
dnl along with this library; see the file COPYING.LIB. If not, write to
|
||||
dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
dnl Boston, MA 02111-1307, USA.
|
||||
|
||||
AC_DEFUN([KDE_CHECK_MICO],
|
||||
[
|
||||
AC_REQUIRE([KDE_CHECK_LIBDL])
|
||||
AC_REQUIRE([KDE_MISC_TESTS])
|
||||
AC_MSG_CHECKING(for MICO)
|
||||
|
||||
if test -z "$MICODIR"; then
|
||||
kde_micodir=/usr/local
|
||||
else
|
||||
kde_micodir="$MICODIR"
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(micodir,
|
||||
[ --with-micodir=micodir where mico is installed ],
|
||||
kde_micodir=$withval,
|
||||
kde_micodir=$kde_micodir
|
||||
)
|
||||
|
||||
AC_CACHE_VAL(kde_cv_mico_incdir,
|
||||
[
|
||||
mico_incdirs="$kde_micodir/include /usr/include /usr/local/include /usr/local/include /opt/local/include $kde_extra_includes"
|
||||
AC_FIND_FILE(CORBA.h, $mico_incdirs, kde_cv_mico_incdir)
|
||||
|
||||
])
|
||||
kde_micodir=`echo $kde_cv_mico_incdir | sed -e 's#/include##'`
|
||||
|
||||
if test ! -r $kde_micodir/include/CORBA.h; then
|
||||
AC_MSG_ERROR([No CORBA.h found, specify another micodir])
|
||||
fi
|
||||
|
||||
AC_MSG_RESULT($kde_micodir)
|
||||
|
||||
MICO_INCLUDES=-I$kde_micodir/include
|
||||
AC_SUBST(MICO_INCLUDES)
|
||||
MICO_LDFLAGS=-L$kde_micodir/lib
|
||||
AC_SUBST(MICO_LDFLAGS)
|
||||
micodir=$kde_micodir
|
||||
AC_SUBST(micodir)
|
||||
|
||||
AC_MSG_CHECKING([for MICO version])
|
||||
AC_CACHE_VAL(kde_cv_mico_version,
|
||||
[
|
||||
AC_LANG_C
|
||||
cat >conftest.$ac_ext <<EOF
|
||||
#include <stdio.h>
|
||||
#include <mico/version.h>
|
||||
int main() {
|
||||
|
||||
printf("MICO_VERSION=%s\n",MICO_VERSION);
|
||||
return (0);
|
||||
}
|
||||
EOF
|
||||
ac_compile='${CC-gcc} $CFLAGS $MICO_INCLUDES conftest.$ac_ext -o conftest'
|
||||
if AC_TRY_EVAL(ac_compile); then
|
||||
if eval `./conftest 2>&5`; then
|
||||
kde_cv_mico_version=$MICO_VERSION
|
||||
else
|
||||
AC_MSG_ERROR([your system is not able to execute a small application to
|
||||
find MICO version! Check $kde_micodir/include/mico/version.h])
|
||||
fi
|
||||
else
|
||||
AC_MSG_ERROR([your system is not able to compile a small application to
|
||||
find MICO version! Check $kde_micodir/include/mico/version.h])
|
||||
fi
|
||||
])
|
||||
|
||||
dnl installed MICO version
|
||||
mico_v_maj=`echo $kde_cv_mico_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
|
||||
mico_v_mid=`echo $kde_cv_mico_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
|
||||
mico_v_min=`echo $kde_cv_mico_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
|
||||
|
||||
if test "x$1" = "x"; then
|
||||
req_version="2.3.0"
|
||||
else
|
||||
req_version=$1
|
||||
fi
|
||||
|
||||
dnl required MICO version
|
||||
req_v_maj=`echo $req_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
|
||||
req_v_mid=`echo $req_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
|
||||
req_v_min=`echo $req_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
|
||||
|
||||
if test "$mico_v_maj" -lt "$req_v_maj" || \
|
||||
( test "$mico_v_maj" -eq "$req_v_maj" && \
|
||||
test "$mico_v_mid" -lt "$req_v_mid" ) || \
|
||||
( test "$mico_v_mid" -eq "$req_v_mid" && \
|
||||
test "$mico_v_min" -lt "$req_v_min" )
|
||||
|
||||
then
|
||||
AC_MSG_ERROR([found MICO version $kde_cv_mico_version but version $req_version \
|
||||
at least is required. You should upgrade MICO.])
|
||||
else
|
||||
AC_MSG_RESULT([$kde_cv_mico_version (minimum version $req_version, ok)])
|
||||
fi
|
||||
|
||||
LIBMICO="-lmico$kde_cv_mico_version $LIBCRYPT $LIBSOCKET $LIBDL"
|
||||
AC_SUBST(LIBMICO)
|
||||
if test -z "$IDL"; then
|
||||
IDL='$(kde_bindir)/cuteidl'
|
||||
fi
|
||||
AC_SUBST(IDL)
|
||||
IDL_DEPENDENCIES='$(kde_includes)/CUTE.h'
|
||||
AC_SUBST(IDL_DEPENDENCIES)
|
||||
|
||||
idldir="\$(includedir)/idl"
|
||||
AC_SUBST(idldir)
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN([KDE_CHECK_MINI_STL],
|
||||
[
|
||||
AC_REQUIRE([KDE_CHECK_MICO])
|
||||
|
||||
AC_MSG_CHECKING(if we use mico's mini-STL)
|
||||
AC_CACHE_VAL(kde_cv_have_mini_stl,
|
||||
[
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
kde_save_cxxflags="$CXXFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS $MICO_INCLUDES"
|
||||
AC_TRY_COMPILE(
|
||||
[
|
||||
#include <mico/config.h>
|
||||
],
|
||||
[
|
||||
#ifdef HAVE_MINI_STL
|
||||
#error "nothing"
|
||||
#endif
|
||||
],
|
||||
kde_cv_have_mini_stl=no,
|
||||
kde_cv_have_mini_stl=yes)
|
||||
CXXFLAGS="$kde_save_cxxflags"
|
||||
AC_LANG_RESTORE
|
||||
])
|
||||
|
||||
if test "x$kde_cv_have_mini_stl" = "xyes"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
$1
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
$2
|
||||
fi
|
||||
])
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN([KDE_CHECK_ANSI],
|
||||
[
|
||||
])
|
||||
|
||||
AC_DEFUN([KDE_CHECK_INSURE],
|
||||
[
|
||||
AC_ARG_ENABLE(insure, [ --enable-insure use insure++ for debugging [default=no]],
|
||||
[
|
||||
if test $enableval = "no"; dnl
|
||||
then ac_use_insure="no"
|
||||
else ac_use_insure="yes"
|
||||
fi
|
||||
], [ac_use_insure="no"])
|
||||
|
||||
AC_MSG_CHECKING(if we will use Insure++ to debug)
|
||||
AC_MSG_RESULT($ac_use_insure)
|
||||
if test "$ac_use_insure" = "yes"; dnl
|
||||
then CC="insure"; CXX="insure"; dnl CFLAGS="$CLAGS -fno-rtti -fno-exceptions "????
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([KDE_CHECK_NEWLIBS],
|
||||
[
|
||||
|
||||
])
|
@ -0,0 +1,57 @@
|
||||
|
||||
dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
|
||||
dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
|
||||
dnl also defines GSTUFF_PKG_ERRORS on error
|
||||
AC_DEFUN([PKG_CHECK_MODULES], [
|
||||
succeeded=no
|
||||
|
||||
if test -z "$PKG_CONFIG"; then
|
||||
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
||||
fi
|
||||
|
||||
if test "$PKG_CONFIG" = "no" ; then
|
||||
echo "*** The pkg-config script could not be found. Make sure it is"
|
||||
echo "*** in your path, or set the PKG_CONFIG environment variable"
|
||||
echo "*** to the full path to pkg-config."
|
||||
echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
|
||||
else
|
||||
PKG_CONFIG_MIN_VERSION=0.9.0
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
|
||||
AC_MSG_CHECKING(for $2)
|
||||
|
||||
if $PKG_CONFIG --exists "$2" ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
succeeded=yes
|
||||
|
||||
AC_MSG_CHECKING($1_CFLAGS)
|
||||
$1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
|
||||
AC_MSG_RESULT($$1_CFLAGS)
|
||||
|
||||
AC_MSG_CHECKING($1_LIBS)
|
||||
$1_LIBS=`$PKG_CONFIG --libs "$2"`
|
||||
AC_MSG_RESULT($$1_LIBS)
|
||||
else
|
||||
$1_CFLAGS=""
|
||||
$1_LIBS=""
|
||||
## If we have a custom action on failure, don't print errors, but
|
||||
## do set a variable so people can do so.
|
||||
$1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
|
||||
ifelse([$4], ,echo $$1_PKG_ERRORS,)
|
||||
fi
|
||||
|
||||
AC_SUBST($1_CFLAGS)
|
||||
AC_SUBST($1_LIBS)
|
||||
else
|
||||
echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
|
||||
echo "*** See http://www.freedesktop.org/software/pkgconfig"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $succeeded = yes; then
|
||||
ifelse([$3], , :, [$3])
|
||||
else
|
||||
ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
|
||||
fi
|
||||
])
|
||||
|
||||
|
@ -0,0 +1,143 @@
|
||||
#! /bin/sh
|
||||
# ylwrap - wrapper for lex/yacc invocations.
|
||||
# Copyright 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# 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, 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.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Usage:
|
||||
# ylwrap INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
|
||||
# * INPUT is the input file
|
||||
# * OUTPUT is file PROG generates
|
||||
# * DESIRED is file we actually want
|
||||
# * PROGRAM is program to run
|
||||
# * ARGS are passed to PROG
|
||||
# Any number of OUTPUT,DESIRED pairs may be used.
|
||||
|
||||
# The input.
|
||||
input="$1"
|
||||
shift
|
||||
case "$input" in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
# Absolute path; do nothing.
|
||||
;;
|
||||
*)
|
||||
# Relative path. Make it absolute.
|
||||
input="`pwd`/$input"
|
||||
;;
|
||||
esac
|
||||
|
||||
# The directory holding the input.
|
||||
input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
|
||||
# Quote $INPUT_DIR so we can use it in a regexp.
|
||||
# FIXME: really we should care about more than `.' and `\'.
|
||||
input_rx=`echo "$input_dir" | sed -e 's,\\\\,\\\\\\\\,g' -e 's,\\.,\\\\.,g'`
|
||||
|
||||
echo "got $input_rx"
|
||||
|
||||
pairlist=
|
||||
while test "$#" -ne 0; do
|
||||
if test "$1" = "--"; then
|
||||
shift
|
||||
break
|
||||
fi
|
||||
pairlist="$pairlist $1"
|
||||
shift
|
||||
done
|
||||
|
||||
# The program to run.
|
||||
prog="$1"
|
||||
shift
|
||||
# Make any relative path in $prog absolute.
|
||||
case "$prog" in
|
||||
[\\/]* | ?:[\\/]*) ;;
|
||||
*[\\/]*) prog="`pwd`/$prog" ;;
|
||||
esac
|
||||
|
||||
# FIXME: add hostname here for parallel makes that run commands on
|
||||
# other machines. But that might take us over the 14-char limit.
|
||||
dirname=ylwrap$$
|
||||
trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
|
||||
mkdir $dirname || exit 1
|
||||
|
||||
cd $dirname
|
||||
|
||||
$prog ${1+"$@"} "$input"
|
||||
status=$?
|
||||
|
||||
if test $status -eq 0; then
|
||||
set X $pairlist
|
||||
shift
|
||||
first=yes
|
||||
# Since DOS filename conventions don't allow two dots,
|
||||
# the DOS version of Bison writes out y_tab.c instead of y.tab.c
|
||||
# and y_tab.h instead of y.tab.h. Test to see if this is the case.
|
||||
y_tab_nodot="no"
|
||||
if test -f y_tab.c || test -f y_tab.h; then
|
||||
y_tab_nodot="yes"
|
||||
fi
|
||||
|
||||
while test "$#" -ne 0; do
|
||||
from="$1"
|
||||
# Handle y_tab.c and y_tab.h output by DOS
|
||||
if test $y_tab_nodot = "yes"; then
|
||||
if test $from = "y.tab.c"; then
|
||||
from="y_tab.c"
|
||||
else
|
||||
if test $from = "y.tab.h"; then
|
||||
from="y_tab.h"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test -f "$from"; then
|
||||
# If $2 is an absolute path name, then just use that,
|
||||
# otherwise prepend `../'.
|
||||
case "$2" in
|
||||
[\\/]* | ?:[\\/]*) target="$2";;
|
||||
*) target="../$2";;
|
||||
esac
|
||||
|
||||
# Edit out `#line' or `#' directives. We don't want the
|
||||
# resulting debug information to point at an absolute srcdir;
|
||||
# it is better for it to just mention the .y file with no
|
||||
# path.
|
||||
sed -e "/^#/ s,$input_rx,," "$from" > "$target" || status=$?
|
||||
else
|
||||
# A missing file is only an error for the first file. This
|
||||
# is a blatant hack to let us support using "yacc -d". If -d
|
||||
# is not specified, we don't want an error when the header
|
||||
# file is "missing".
|
||||
if test $first = yes; then
|
||||
status=1
|
||||
fi
|
||||
fi
|
||||
shift
|
||||
shift
|
||||
first=no
|
||||
done
|
||||
else
|
||||
status=$?
|
||||
fi
|
||||
|
||||
# Remove the directory.
|
||||
cd ..
|
||||
rm -rf $dirname
|
||||
|
||||
exit $status
|
@ -0,0 +1,471 @@
|
||||
# This file was generated.
|
||||
# It contains the lists of macros which have been traced.
|
||||
# It can be safely removed.
|
||||
|
||||
@request = (
|
||||
bless( [
|
||||
'0',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'/usr/share/aclocal-1.9/amversion.m4',
|
||||
'/usr/share/aclocal-1.9/auxdir.m4',
|
||||
'/usr/share/aclocal-1.9/cond.m4',
|
||||
'/usr/share/aclocal-1.9/depend.m4',
|
||||
'/usr/share/aclocal-1.9/depout.m4',
|
||||
'/usr/share/aclocal-1.9/header.m4',
|
||||
'/usr/share/aclocal-1.9/init.m4',
|
||||
'/usr/share/aclocal-1.9/install-sh.m4',
|
||||
'/usr/share/aclocal-1.9/lead-dot.m4',
|
||||
'/usr/share/aclocal-1.9/lex.m4',
|
||||
'/usr/share/aclocal-1.9/make.m4',
|
||||
'/usr/share/aclocal-1.9/missing.m4',
|
||||
'/usr/share/aclocal-1.9/mkdirp.m4',
|
||||
'/usr/share/aclocal-1.9/options.m4',
|
||||
'/usr/share/aclocal-1.9/runlog.m4',
|
||||
'/usr/share/aclocal-1.9/sanity.m4',
|
||||
'/usr/share/aclocal-1.9/strip.m4',
|
||||
'/usr/share/aclocal-1.9/tar.m4',
|
||||
'acinclude.m4',
|
||||
'configure.in'
|
||||
],
|
||||
{
|
||||
'AM_ENABLE_STATIC' => 1,
|
||||
'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
|
||||
'AC_TYPE_OFF_T' => 1,
|
||||
'AC_C_VOLATILE' => 1,
|
||||
'AM_FUNC_ERROR_AT_LINE' => 1,
|
||||
'AC_REMOVE_FORBIDDEN' => 1,
|
||||
'KDE_CHECK_PYTHON_INTERN' => 1,
|
||||
'AC_REPLACE_FNMATCH' => 1,
|
||||
'AC_CREATE_KFSSTND' => 1,
|
||||
'_LT_AC_LANG_CXX_CONFIG' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AC_FUNC_STAT' => 1,
|
||||
'KDE_FIND_IMLIB2_CONFIG' => 1,
|
||||
'AC_FUNC_WAIT3' => 1,
|
||||
'AC_STRUCT_TM' => 1,
|
||||
'AC_FUNC_LSTAT' => 1,
|
||||
'AC_CHECK_HEADERS' => 1,
|
||||
'AC_FIND_JPEG' => 1,
|
||||
'KDE_JAVA_PREFIX' => 1,
|
||||
'KDE_CHECK_LIBDL' => 1,
|
||||
'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AC_CHECK_GETDOMAINNAME' => 1,
|
||||
'KDE_CREATE_LIBS_ALIASES' => 1,
|
||||
'AM_SANITY_CHECK' => 1,
|
||||
'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
|
||||
'AC_FIND_TIFF' => 1,
|
||||
'KDE_CHECK_COMPILER_FLAG' => 1,
|
||||
'AC_LIBTOOL_GCJ' => 1,
|
||||
'AC_PROG_GCC_TRADITIONAL' => 1,
|
||||
'AC_LIBTOOL_CONFIG' => 1,
|
||||
'KDE_CHECK_FINAL' => 1,
|
||||
'K_PATH_X' => 1,
|
||||
'KDE_DO_IT_ALL' => 1,
|
||||
'sinclude' => 1,
|
||||
'AM_DISABLE_SHARED' => 1,
|
||||
'AC_CHECK_RANDOM' => 1,
|
||||
'_LT_AC_LANG_CXX' => 1,
|
||||
'AC_FUNC_FORK' => 1,
|
||||
'AC_DECL_SYS_SIGLIST' => 1,
|
||||
'KDE_SET_DEFAULT_PATHS' => 1,
|
||||
'AC_PROG_NM' => 1,
|
||||
'AC_PROG_LD_GNU' => 1,
|
||||
'AC_ENABLE_FAST_INSTALL' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'AC_SUBST_KFSSTND' => 1,
|
||||
'AC_CHECK_STRLCAT' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AC_FUNC_ALLOCA' => 1,
|
||||
'KDE_PRINT_QT_PROGRAM' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'KDE_CHECK_TYPES' => 1,
|
||||
'AC_PROG_RANLIB' => 1,
|
||||
'AC_LIBTOOL_PROG_CC_C_O' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AC_CHECK_S_ISSOCK' => 1,
|
||||
'AC_TYPE_SIZE_T' => 1,
|
||||
'AC_DEFUN_ONCE' => 1,
|
||||
'AC_FUNC_SELECT_ARGTYPES' => 1,
|
||||
'AM_LC_MESSAGES' => 1,
|
||||
'_LT_AC_LANG_GCJ' => 1,
|
||||
'AC_CHECK_SETENV' => 1,
|
||||
'AC_FUNC_STRFTIME' => 1,
|
||||
'_LT_AC_PROG_ECHO_BACKSLASH' => 1,
|
||||
'_LT_AC_TRY_DLOPEN_SELF' => 1,
|
||||
'AC_BASE_PATH_KDE' => 1,
|
||||
'LT_AC_PROG_SED' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'KDE_CHECK_STRLCPY' => 1,
|
||||
'_LT_AC_LANG_GCJ_CONFIG' => 1,
|
||||
'KDE_FIND_PATH' => 1,
|
||||
'AC_FUNC_OBSTACK' => 1,
|
||||
'AC_CHECK_LIB' => 1,
|
||||
'AC_ENABLE_SHARED' => 1,
|
||||
'KDE_PATH_X_DIRECT' => 1,
|
||||
'AC_PATH_QT' => 1,
|
||||
'AC_FUNC_FSEEKO' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'_LT_AC_TAGVAR' => 1,
|
||||
'AC_PATH_QT_MOC_UIC' => 1,
|
||||
'AC_HEADER_SYS_WAIT' => 1,
|
||||
'AC_PROG_LN_S' => 1,
|
||||
'm4_include' => 1,
|
||||
'AC_HEADER_DIRENT' => 1,
|
||||
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
|
||||
'AM_MAKE_INCLUDE' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_CHECK_UTMP_FILE' => 1,
|
||||
'KDE_CHECK_UIC_PLUGINS' => 1,
|
||||
'AC_LIBTOOL_SETUP' => 1,
|
||||
'AC_PROG_LD_RELOAD_FLAG' => 1,
|
||||
'AC_HEADER_TIME' => 1,
|
||||
'AC_CHECK_GNU_EXTENSIONS' => 1,
|
||||
'AC_TYPE_MODE_T' => 1,
|
||||
'AM_MISSING_HAS_RUN' => 1,
|
||||
'KDE_CHECK_PATHS_FOR_COMPLETENESS' => 1,
|
||||
'AC_LIBTOOL_DLOPEN_SELF' => 1,
|
||||
'KDE_PROG_LIBTOOL' => 1,
|
||||
'KDE_CHECK_QT_JPEG' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
|
||||
'AC_PATH_QT_1_3' => 1,
|
||||
'AC_HEADER_STDC' => 1,
|
||||
'AC_LIBTOOL_LINKER_OPTION' => 1,
|
||||
'AM_DISABLE_LIBRARIES' => 1,
|
||||
'LT_AC_PROG_GCJ' => 1,
|
||||
'KDE_FAST_CONFIGURE' => 1,
|
||||
'AC_FUNC_ERROR_AT_LINE' => 1,
|
||||
'AM_DISABLE_STATIC' => 1,
|
||||
'KDE_MOC_ERROR_MESSAGE' => 1,
|
||||
'AC_FUNC_MBRTOWC' => 1,
|
||||
'AM_CONFIG_HEADER' => 1,
|
||||
'_AC_PROG_LIBTOOL' => 1,
|
||||
'AC_TYPE_SIGNAL' => 1,
|
||||
'KDE_TRY_TIFFLIB' => 1,
|
||||
'KDE_1_CHECK_PATH_HEADERS' => 1,
|
||||
'KDE_CHECK_HEADER' => 1,
|
||||
'KDE_USE_QT' => 1,
|
||||
'_AM_IF_OPTION' => 1,
|
||||
'AC_PATH_TOOL_PREFIX' => 1,
|
||||
'KDE_FIND_JPEG_HELPER' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AC_LIBTOOL_F77' => 1,
|
||||
'AC_CHECK_MKSTEMPS' => 1,
|
||||
'KDE_SHADOWPASSWD' => 1,
|
||||
'AM_SET_LEADING_DOT' => 1,
|
||||
'KDE_CHECK_DLOPEN' => 1,
|
||||
'AC_FIND_FILE' => 1,
|
||||
'_LT_AC_SYS_COMPILER' => 1,
|
||||
'AM_KDE_WITH_NLS' => 1,
|
||||
'AM_PROG_NM' => 1,
|
||||
'KDE_CHECK_NMCHECK' => 1,
|
||||
'AC_FUNC_STRCOLL' => 1,
|
||||
'AC_CHECK_STRLCPY' => 1,
|
||||
'AC_LIBLTDL_CONVENIENCE' => 1,
|
||||
'AC_DEPLIBS_CHECK_METHOD' => 1,
|
||||
'KDE_CHECK_PYTHON_DIR' => 1,
|
||||
'AC_FUNC_CHOWN' => 1,
|
||||
'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
|
||||
'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
|
||||
'AC_FUNC_GETPGRP' => 1,
|
||||
'AC_HAVE_DPMS' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'KDE_LANG_CPLUSPLUS' => 1,
|
||||
'AC_DISABLE_STATIC' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'KDE_MISSING_PROG_ERROR' => 1,
|
||||
'_LT_AC_LOCK' => 1,
|
||||
'_LT_AC_LANG_RC_CONFIG' => 1,
|
||||
'AC_CHECK_GETHOSTNAME' => 1,
|
||||
'KDE_CREATE_SUBDIRSLIST' => 1,
|
||||
'AC_C_CONST' => 1,
|
||||
'KDE_CHECK_EXTRA_LIBS' => 1,
|
||||
'KDE_UIC_ERROR_MESSAGE' => 1,
|
||||
'AC_PROG_INSTALL' => 1,
|
||||
'AM_AUX_DIR_EXPAND' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
|
||||
'_AM_SET_OPTIONS' => 1,
|
||||
'_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AC_CHECK_LIBM' => 1,
|
||||
'_AM_MANGLE_OPTION' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'KDE_CHECK_HEADERS' => 1,
|
||||
'AM_SET_DEPDIR' => 1,
|
||||
'AC_HAVE_XPM' => 1,
|
||||
'KDE_CHECK_THREADING' => 1,
|
||||
'AM_KDE_GNU_GETTEXT' => 1,
|
||||
'KDE_CHECK_DYNAMIC_LOADING' => 1,
|
||||
'AC_CHECK_FUNCS' => 1,
|
||||
'_LT_AC_SHELL_INIT' => 1,
|
||||
'AC_FUNC_CLOSEDIR_VOID' => 1,
|
||||
'AC_DEFUN' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AC_FUNC_STRTOD' => 1,
|
||||
'KDE_SET_PATHS' => 1,
|
||||
'AM_MISSING_PROG' => 1,
|
||||
'AC_FUNC_STRNLEN' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
|
||||
'AC_PROG_CXX' => 1,
|
||||
'_LT_AC_LANG_C_CONFIG' => 1,
|
||||
'KDE_TRY_LINK_PYTHON' => 1,
|
||||
'AC_CHECK_MKDTEMP' => 1,
|
||||
'AM_PROG_INSTALL_STRIP' => 1,
|
||||
'AC_PROG_AWK' => 1,
|
||||
'AC_LIBTOOL_OBJDIR' => 1,
|
||||
'AC_HEADER_MAJOR' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
|
||||
'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
|
||||
'_LT_AC_CHECK_DLFCN' => 1,
|
||||
'AC_CHECK_BOOL' => 1,
|
||||
'_AM_PROG_TAR' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_STRUCT_ST_BLOCKS' => 1,
|
||||
'AC_CHECK_KDEMAXPATHLEN' => 1,
|
||||
'_LT_AC_LANG_F77' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'AC_PROG_MAKE_SET' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'AM_PATH_PROG_WITH_TEST_KDE' => 1,
|
||||
'_LT_AC_FILE_LTDLL_C' => 1,
|
||||
'AM_PROG_LD' => 1,
|
||||
'AC_FIND_QIMGIO' => 1,
|
||||
'AC_FUNC_STRERROR_R' => 1,
|
||||
'AC_CHECK_SOCKLEN_T' => 1,
|
||||
'AC_FUNC_VPRINTF' => 1,
|
||||
'AU_DEFUN' => 1,
|
||||
'KDE_SUBST_PROGRAMS' => 1,
|
||||
'KDE_CHECK_JAVA_DIR' => 1,
|
||||
'AC_LIBTOOL_DLOPEN' => 1,
|
||||
'AC_PROG_LD' => 1,
|
||||
'AC_STRUCT_TIMEZONE' => 1,
|
||||
'_AM_SET_OPTION' => 1,
|
||||
'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
|
||||
'KDE_CHECK_UIC_FLAG' => 1,
|
||||
'AC_FUNC_SETPGRP' => 1,
|
||||
'AC_HAVE_GL' => 1,
|
||||
'AC_FUNC_MMAP' => 1,
|
||||
'AC_CHECK_TYPES' => 1,
|
||||
'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AC_CHECK_MEMBERS' => 1,
|
||||
'AC_FUNC_UTIME_NULL' => 1,
|
||||
'KDE_CHECK_CLOSURE' => 1,
|
||||
'AC_HEADER_STAT' => 1,
|
||||
'DEF_PAM_SERVICE' => 1,
|
||||
'AC_C_INLINE' => 1,
|
||||
'AC_LIBTOOL_RC' => 1,
|
||||
'AC_DISABLE_FAST_INSTALL' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'KDE_INIT_DOXYGEN' => 1,
|
||||
'_LT_AC_SYS_LIBPATH_AIX' => 1,
|
||||
'include' => 1,
|
||||
'KDE_MISSING_ARTS_ERROR' => 1,
|
||||
'AM_ENABLE_SHARED' => 1,
|
||||
'AC_CHECK_USLEEP' => 1,
|
||||
'AC_FUNC_MALLOC' => 1,
|
||||
'AC_FUNC_GETGROUPS' => 1,
|
||||
'AC_FUNC_GETLOADAVG' => 1,
|
||||
'AC_ENABLE_STATIC' => 1,
|
||||
'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
|
||||
'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_FUNC_MKTIME' => 1,
|
||||
'AC_FUNC_MEMCMP' => 1,
|
||||
'AM_PROG_INSTALL_SH' => 1,
|
||||
'AC_PROG_EGREP' => 1,
|
||||
'KDE_PASSWDLIBS' => 1,
|
||||
'AM_PROG_OBJC' => 1,
|
||||
'AC_PATH_MAGIC' => 1,
|
||||
'KDE_CONF_FILES' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'KDE_CHECK_LONG_LONG' => 1,
|
||||
'AC_LIBTOOL_COMPILER_OPTION' => 1,
|
||||
'AC_DISABLE_SHARED' => 1,
|
||||
'AC_CHECK_UNSETENV' => 1,
|
||||
'AC_LIBTOOL_WIN32_DLL' => 1,
|
||||
'AC_FUNC_GETMNTENT' => 1,
|
||||
'KDE_CHECK_BINUTILS' => 1,
|
||||
'AC_FIND_GIF' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'KDE_SET_PREFIX' => 1,
|
||||
'AC_PATH_X' => 1,
|
||||
'KDE_CHECK_LIB' => 1,
|
||||
'KDE_CHECK_LIB64' => 1,
|
||||
'KDE_CHECK_SSL' => 1,
|
||||
'KDE_CHECK_STL' => 1,
|
||||
'AC_CHECK_RES_INIT' => 1,
|
||||
'AC_LIBTOOL_CXX' => 1,
|
||||
'LT_AC_PROG_RC' => 1,
|
||||
'KDE_ADD_INCLUDES' => 1,
|
||||
'AC_CHECK_RPATH' => 1,
|
||||
'AM_DEP_TRACK' => 1,
|
||||
'KDE_PAM' => 1,
|
||||
'AC_TYPE_UID_T' => 1,
|
||||
'KDE_MISC_TESTS' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'_AM_DEPENDENCIES' => 1,
|
||||
'KDE_ADD_DEPENDENCIES' => 1,
|
||||
'AC_LIBTOOL_LANG_C_CONFIG' => 1,
|
||||
'AC_PROG_CC' => 1,
|
||||
'AC_FIND_ZLIB' => 1,
|
||||
'AC_PROG_YACC' => 1,
|
||||
'AC_LIBLTDL_INSTALLABLE' => 1,
|
||||
'AC_VALIDIFY_CXXFLAGS' => 1,
|
||||
'KDE_CHECK_NAMESPACES' => 1,
|
||||
'AC_FIND_BZIP2' => 1,
|
||||
'AC_FUNC_REALLOC' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'AC_PATH_KDE' => 1,
|
||||
'KDE_CHECK_PTHREAD_OPTION' => 1,
|
||||
'AC_PATH_QTOPIA' => 1,
|
||||
'KDE_CHECK_PERL' => 1,
|
||||
'AC_PROG_CPP' => 1,
|
||||
'KDE_CHECK_PYTHON' => 1,
|
||||
'AC_TYPE_PID_T' => 1,
|
||||
'AC_PROG_LEX' => 1,
|
||||
'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
|
||||
'AC_FUNC_SETVBUF_REVERSED' => 1,
|
||||
'KDE_1_CHECK_PATHS' => 1,
|
||||
'KDE_CHECK_LIBPTHREAD' => 1,
|
||||
'_LT_AC_LANG_F77_CONFIG' => 1,
|
||||
'AM_RUN_LOG' => 1,
|
||||
'AC_CHECK_INITGROUPS' => 1,
|
||||
'AC_LIBTOOL_PICMODE' => 1,
|
||||
'AM_PROG_LEX' => 1,
|
||||
'KDE_CHECK_FUNC_EXT' => 1,
|
||||
'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
|
||||
'KDE_NEED_FLEX' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AC_FIND_PNG' => 1,
|
||||
'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
|
||||
'AM_FUNC_OBSTACK' => 1,
|
||||
'AC_CHECK_COMPILERS' => 1,
|
||||
'KDE_CHECK_KDEQTADDON' => 1,
|
||||
'KDE_EXPAND_MAKEVAR' => 1,
|
||||
'AC_FIND_JASPER' => 1,
|
||||
'KDE_CHECK_QT_DIRECT' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
'1',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'aclocal.m4',
|
||||
'configure.in'
|
||||
],
|
||||
{
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_C_VOLATILE' => 1,
|
||||
'AC_TYPE_OFF_T' => 1,
|
||||
'AC_FUNC_CLOSEDIR_VOID' => 1,
|
||||
'AC_REPLACE_FNMATCH' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AC_FUNC_STAT' => 1,
|
||||
'AC_FUNC_WAIT3' => 1,
|
||||
'AC_HEADER_TIME' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AC_FUNC_LSTAT' => 1,
|
||||
'AC_STRUCT_TM' => 1,
|
||||
'AC_FUNC_GETMNTENT' => 1,
|
||||
'AC_TYPE_MODE_T' => 1,
|
||||
'AC_CHECK_HEADERS' => 1,
|
||||
'AC_FUNC_STRTOD' => 1,
|
||||
'AC_FUNC_STRNLEN' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'AC_PROG_CXX' => 1,
|
||||
'AC_PATH_X' => 1,
|
||||
'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
|
||||
'AC_PROG_AWK' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AC_HEADER_STDC' => 1,
|
||||
'AC_HEADER_MAJOR' => 1,
|
||||
'AC_FUNC_ERROR_AT_LINE' => 1,
|
||||
'AC_PROG_GCC_TRADITIONAL' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_FUNC_MBRTOWC' => 1,
|
||||
'AC_STRUCT_ST_BLOCKS' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'AC_TYPE_SIGNAL' => 1,
|
||||
'AC_TYPE_UID_T' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'AC_PROG_MAKE_SET' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'sinclude' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AC_FUNC_STRERROR_R' => 1,
|
||||
'AC_PROG_CC' => 1,
|
||||
'AC_DECL_SYS_SIGLIST' => 1,
|
||||
'AC_FUNC_FORK' => 1,
|
||||
'AC_FUNC_STRCOLL' => 1,
|
||||
'AC_FUNC_VPRINTF' => 1,
|
||||
'AC_PROG_YACC' => 1,
|
||||
'AC_STRUCT_TIMEZONE' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'AC_FUNC_CHOWN' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AC_FUNC_ALLOCA' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AC_FUNC_GETPGRP' => 1,
|
||||
'AC_PROG_RANLIB' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AC_FUNC_SETPGRP' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AC_FUNC_MMAP' => 1,
|
||||
'AC_FUNC_REALLOC' => 1,
|
||||
'AC_TYPE_SIZE_T' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'AC_CHECK_TYPES' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AC_CHECK_MEMBERS' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AC_FUNC_UTIME_NULL' => 1,
|
||||
'AC_FUNC_SELECT_ARGTYPES' => 1,
|
||||
'AC_FUNC_STRFTIME' => 1,
|
||||
'AC_HEADER_STAT' => 1,
|
||||
'AC_C_INLINE' => 1,
|
||||
'AC_PROG_CPP' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AC_C_CONST' => 1,
|
||||
'AC_PROG_LEX' => 1,
|
||||
'AC_TYPE_PID_T' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'include' => 1,
|
||||
'AC_FUNC_SETVBUF_REVERSED' => 1,
|
||||
'AC_PROG_INSTALL' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AC_FUNC_OBSTACK' => 1,
|
||||
'AC_CHECK_LIB' => 1,
|
||||
'AC_FUNC_MALLOC' => 1,
|
||||
'AC_FUNC_GETGROUPS' => 1,
|
||||
'AC_FUNC_GETLOADAVG' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AC_FUNC_FSEEKO' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AC_FUNC_MKTIME' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_HEADER_SYS_WAIT' => 1,
|
||||
'AC_FUNC_MEMCMP' => 1,
|
||||
'AC_PROG_LN_S' => 1,
|
||||
'm4_include' => 1,
|
||||
'AC_HEADER_DIRENT' => 1,
|
||||
'AC_CHECK_FUNCS' => 1
|
||||
}
|
||||
], 'Autom4te::Request' )
|
||||
);
|
||||
|
@ -0,0 +1,250 @@
|
||||
/* config.h.in. Generated from configure.in by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the <Carbon/Carbon.h> header file. */
|
||||
#undef HAVE_CARBON_CARBON_H
|
||||
|
||||
/* Define if you have the CoreAudio API */
|
||||
#undef HAVE_COREAUDIO
|
||||
|
||||
/* Define to 1 if you have the <crt_externs.h> header file. */
|
||||
#undef HAVE_CRT_EXTERNS_H
|
||||
|
||||
/* Defines if your system has the crypt function */
|
||||
#undef HAVE_CRYPT
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define if you have libjpeg */
|
||||
#undef HAVE_LIBJPEG
|
||||
|
||||
/* Define if you have libpng */
|
||||
#undef HAVE_LIBPNG
|
||||
|
||||
/* Define if you have a working libpthread (will enable threaded code) */
|
||||
#undef HAVE_LIBPTHREAD
|
||||
|
||||
/* Define if you have libz */
|
||||
#undef HAVE_LIBZ
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define if your system needs _NSGetEnviron to set up the environment */
|
||||
#undef HAVE_NSGETENVIRON
|
||||
|
||||
/* Define if you have res_init */
|
||||
#undef HAVE_RES_INIT
|
||||
|
||||
/* Define if you have the res_init prototype */
|
||||
#undef HAVE_RES_INIT_PROTO
|
||||
|
||||
/* Define if you have a STL implementation by SGI */
|
||||
#undef HAVE_SGI_STL
|
||||
|
||||
/* Define to 1 if you have the `snprintf' function. */
|
||||
#undef HAVE_SNPRINTF
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define if you have strlcat */
|
||||
#undef HAVE_STRLCAT
|
||||
|
||||
/* Define if you have the strlcat prototype */
|
||||
#undef HAVE_STRLCAT_PROTO
|
||||
|
||||
/* Define if you have strlcpy */
|
||||
#undef HAVE_STRLCPY
|
||||
|
||||
/* Define if you have the strlcpy prototype */
|
||||
#undef HAVE_STRLCPY_PROTO
|
||||
|
||||
/* Define to 1 if you have the <sys/bitypes.h> header file. */
|
||||
#undef HAVE_SYS_BITYPES_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 if you have the `vsnprintf' function. */
|
||||
#undef HAVE_VSNPRINTF
|
||||
|
||||
/* Define if you have the XComposite extens ion */
|
||||
#undef HAVE_XCOMPOSITE
|
||||
|
||||
/* Define if you have the XDamage extens ion */
|
||||
#undef HAVE_XDAMAGE
|
||||
|
||||
/* Suffix for lib directories */
|
||||
#undef KDELIBSUFF
|
||||
|
||||
/* Define a safe value for MAXPATHLEN */
|
||||
#undef KDEMAXPATHLEN
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* The size of a `char *', as computed by sizeof. */
|
||||
#undef SIZEOF_CHAR_P
|
||||
|
||||
/* The size of a `int', as computed by sizeof. */
|
||||
#undef SIZEOF_INT
|
||||
|
||||
/* The size of a `long', as computed by sizeof. */
|
||||
#undef SIZEOF_LONG
|
||||
|
||||
/* The size of a `short', as computed by sizeof. */
|
||||
#undef SIZEOF_SHORT
|
||||
|
||||
/* The size of a `size_t', as computed by sizeof. */
|
||||
#undef SIZEOF_SIZE_T
|
||||
|
||||
/* The size of a `unsigned long', as computed by sizeof. */
|
||||
#undef SIZEOF_UNSIGNED_LONG
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Defined if compiling without arts */
|
||||
#undef WITHOUT_ARTS
|
||||
|
||||
/* Define to 1 if your processor stores words with the most significant byte
|
||||
first (like Motorola and SPARC, unlike Intel and VAX). */
|
||||
#undef WORDS_BIGENDIAN
|
||||
|
||||
/*
|
||||
* jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system
|
||||
* headers and I'm too lazy to write a configure test as long as only
|
||||
* unixware is related
|
||||
*/
|
||||
#ifdef _UNIXWARE
|
||||
#define HAVE_BOOLEAN
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* AIX defines FD_SET in terms of bzero, but fails to include <strings.h>
|
||||
* that defines bzero.
|
||||
*/
|
||||
|
||||
#if defined(_AIX)
|
||||
#include <strings.h>
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
|
||||
# include <sys/time.h>
|
||||
# include <crt_externs.h>
|
||||
# define environ (*_NSGetEnviron())
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if !defined(HAVE_RES_INIT_PROTO)
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
int res_init(void);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if !defined(HAVE_STRLCAT_PROTO)
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
unsigned long strlcat(char*, const char*, unsigned long);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if !defined(HAVE_STRLCPY_PROTO)
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
unsigned long strlcpy(char*, const char*, unsigned long);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* On HP-UX, the declaration of vsnprintf() is needed every time !
|
||||
*/
|
||||
|
||||
#if !defined(HAVE_VSNPRINTF) || defined(hpux)
|
||||
#if __STDC__
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#else
|
||||
#include <varargs.h>
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
int vsnprintf(char *str, size_t n, char const *fmt, va_list ap);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
int snprintf(char *str, size_t n, char const *fmt, ...);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if defined(__SVR4) && !defined(__svr4__)
|
||||
#define __svr4__ 1
|
||||
#endif
|
||||
|
||||
|
||||
/* type to use in place of socklen_t if not defined */
|
||||
#undef kde_socklen_t
|
||||
|
||||
/* type to use in place of socklen_t if not defined (deprecated, use
|
||||
kde_socklen_t) */
|
||||
#undef ksize_t
|
@ -0,0 +1,2 @@
|
||||
./admin/configure.in.min
|
||||
configure.in.in
|
@ -0,0 +1,208 @@
|
||||
dnl =======================================================
|
||||
dnl FILE: ./admin/configure.in.min
|
||||
dnl =======================================================
|
||||
|
||||
dnl This file is part of the KDE libraries/packages
|
||||
dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
|
||||
|
||||
dnl This file is free software; you can redistribute it and/or
|
||||
dnl modify it under the terms of the GNU Library General Public
|
||||
dnl License as published by the Free Software Foundation; either
|
||||
dnl version 2 of the License, or (at your option) any later version.
|
||||
|
||||
dnl This library is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
dnl Library General Public License for more details.
|
||||
|
||||
dnl You should have received a copy of the GNU Library General Public License
|
||||
dnl along with this library; see the file COPYING.LIB. If not, write to
|
||||
dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
dnl Boston, MA 02111-1307, USA.
|
||||
|
||||
# Original Author was Kalle@kde.org
|
||||
# I lifted it in some mater. (Stephan Kulow)
|
||||
# I used much code from Janos Farkas
|
||||
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_INIT(acinclude.m4) dnl a source file from your sub dir
|
||||
|
||||
dnl This is so we can use kde-common
|
||||
AC_CONFIG_AUX_DIR(admin)
|
||||
|
||||
dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
|
||||
unset CDPATH
|
||||
|
||||
dnl Checking host/target/build systems, for make, install etc.
|
||||
AC_CANONICAL_SYSTEM
|
||||
dnl Perform program name transformation
|
||||
AC_ARG_PROGRAM
|
||||
|
||||
dnl Automake doc recommends to do this only here. (Janos)
|
||||
AM_INIT_AUTOMAKE(kompose, 0.5.4) dnl searches for some needed programs
|
||||
|
||||
KDE_SET_PREFIX
|
||||
|
||||
dnl generate the config header
|
||||
AM_CONFIG_HEADER(config.h) dnl at the distribution this done
|
||||
|
||||
dnl Checks for programs.
|
||||
AC_CHECK_COMPILERS
|
||||
AC_ENABLE_SHARED(yes)
|
||||
AC_ENABLE_STATIC(no)
|
||||
KDE_PROG_LIBTOOL
|
||||
|
||||
dnl for NLS support. Call them in this order!
|
||||
dnl WITH_NLS is for the po files
|
||||
AM_KDE_WITH_NLS
|
||||
|
||||
KDE_USE_QT(3.2)
|
||||
AC_PATH_KDE
|
||||
dnl =======================================================
|
||||
dnl FILE: configure.in.in
|
||||
dnl =======================================================
|
||||
|
||||
#MIN_CONFIG(3.2)
|
||||
|
||||
CXXFLAGS="$CXXFLAGS $KDE_DEFAULT_CXXFLAGS"
|
||||
dnl PACKAGE set before
|
||||
AC_C_BIGENDIAN
|
||||
AC_CHECK_KDEMAXPATHLEN
|
||||
|
||||
AC_PREREQ(2.52)
|
||||
|
||||
X_LIBS="$X_PRE_LIBS $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"
|
||||
|
||||
dnl --- XDamage check
|
||||
AC_CHECK_HEADER(X11/extensions/Xdamage.h, [
|
||||
AC_CHECK_LIB(Xdamage, XDamageQueryExtension, [
|
||||
AC_DEFINE(HAVE_XDAMAGE, 1, [Define if you have the XDamage extens
|
||||
ion])
|
||||
LIB_XDAMAGE="-lXdamage -lXfixes"],, [ -L/usr/X11R6/lib $X_PRE_LIBS $X_LIBS -lXext -lX11 $X_EXTRA_LIBS ])
|
||||
],, [#include <X11/Xlib.h>])
|
||||
AC_SUBST(LIB_XDAMAGE)
|
||||
|
||||
dnl --- XComposite check
|
||||
AC_CHECK_HEADER(X11/extensions/Xcomposite.h, [
|
||||
AC_CHECK_LIB(Xcomposite, XCompositeQueryExtension, [
|
||||
AC_DEFINE(HAVE_XCOMPOSITE, 1, [Define if you have the XComposite extens
|
||||
ion])
|
||||
LIB_XCOMPOSITE="-lXcomposite"],, [ -L/usr/X11R6/lib $X_PRE_LIBS $X_LIBS -lXext -lX11 $X_EXTRA_LIBS ])
|
||||
],, [#include <X11/Xlib.h>])
|
||||
AC_SUBST(LIB_XCOMPOSITE)
|
||||
|
||||
|
||||
# modified kuickshow imlib search
|
||||
#
|
||||
# checking for Imlib2...
|
||||
dnl --- Imlib2 check
|
||||
|
||||
AC_DEFUN([KDE_FIND_IMLIB2_CONFIG],
|
||||
[AC_MSG_CHECKING([for imlib2-config])
|
||||
|
||||
imlib2_config_given=NO
|
||||
ac_imlib2_config=""
|
||||
|
||||
AC_ARG_WITH(imlib2-config,
|
||||
AC_HELP_STRING([--with-imlib2-config=DIR],[directory where "imlib2-config" is located]),
|
||||
[ ac_imlib2_config="$withval/imlib2-config"
|
||||
imlib2_config_given=yes
|
||||
])
|
||||
|
||||
if test "$imlib2_config_given" = "yes"; then
|
||||
if test ! -r $ac_imlib2_config; then
|
||||
AC_MSG_RESULT(wrong file specified)
|
||||
ac_imlib2_config=""
|
||||
else
|
||||
AC_MSG_RESULT($ac_imlib2_config)
|
||||
LIB_IMLIB2=`$ac_imlib2_config --libs`
|
||||
AC_SUBST(LIB_IMLIB2)
|
||||
fi
|
||||
else
|
||||
ac_imlib2_config=`which imlib2-config 2>/dev/null`
|
||||
if test -z "$ac_imlib2_config"; then
|
||||
AC_MSG_RESULT(no)
|
||||
else
|
||||
dummy=`echo "$ac_imlib2_config" | grep '/imlib2-config'`
|
||||
if test -z "$dummy"; then
|
||||
AC_MSG_RESULT(no)
|
||||
ac_imlib2_config=""
|
||||
else
|
||||
LIB_IMLIB2=`$ac_imlib2_config --libs`
|
||||
IMLIB2_CFLAGS=`$ac_imlib2_config --cflags`
|
||||
imlib2_config=`echo "$LIB_IMLIB2" | grep lImlib2`
|
||||
if test -z "$imlib2_config"; then
|
||||
AC_MSG_RESULT(no)
|
||||
ac_imlib2_config=""
|
||||
else
|
||||
AC_SUBST(LIB_IMLIB2)
|
||||
AC_SUBST(IMLIB2_CFLAGS)
|
||||
AC_MSG_RESULT($ac_imlib2_config)
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
])
|
||||
|
||||
dnl Check if Imlib2 is installed properly
|
||||
KDE_FIND_IMLIB2_CONFIG
|
||||
|
||||
if test -z "$ac_imlib2_config"; then
|
||||
dnl AC_MSG_ERROR([You need to install Imlib2 1.x from http://www.enlightenment.org/pages/imlib2.html if your distributor doesn't have a package])
|
||||
echo imlib2-config not found
|
||||
#DO_NOT_COMPILE="$DO_NOT_COMPILE kompose" # maybe one day we'll be in KDE, so I'll leave this here :)
|
||||
fi
|
||||
KDE_CREATE_SUBDIRSLIST
|
||||
AC_CONFIG_FILES([ Makefile ])
|
||||
AC_CONFIG_FILES([ doc/Makefile ])
|
||||
AC_CONFIG_FILES([ doc/en/Makefile ])
|
||||
AC_CONFIG_FILES([ po/Makefile ])
|
||||
AC_CONFIG_FILES([ src/Makefile ])
|
||||
AC_OUTPUT
|
||||
# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
|
||||
if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
|
||||
# And if so, warn when they don't match
|
||||
if test "$kde_libs_prefix" != "$given_prefix"; then
|
||||
# And if kde doesn't know about the prefix yet
|
||||
echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
|
||||
if test $? -ne 0; then
|
||||
echo ""
|
||||
echo "Warning: you chose to install this package in $given_prefix,"
|
||||
echo "but KDE was found in $kde_libs_prefix."
|
||||
echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
|
||||
echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
|
||||
echo "Then restart KDE."
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then
|
||||
echo ""
|
||||
echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility"
|
||||
echo "was not included. Therefore, GCC symbol visibility support remains disabled."
|
||||
echo ""
|
||||
echo "For better performance, consider including the Qt visibility supporting patch"
|
||||
echo "located at:"
|
||||
echo ""
|
||||
echo "http://bugs.kde.org/show_bug.cgi?id=109386"
|
||||
echo ""
|
||||
echo "and recompile all of Qt and KDE. Note, this is entirely optional and"
|
||||
echo "everything will continue to work just fine without it."
|
||||
echo ""
|
||||
fi
|
||||
|
||||
if test "$all_tests" = "bad"; then
|
||||
if test ! "$cache_file" = "/dev/null"; then
|
||||
echo ""
|
||||
echo "Please remove the file $cache_file after changing your setup"
|
||||
echo "so that configure will find the changes next time."
|
||||
echo ""
|
||||
fi
|
||||
else
|
||||
echo ""
|
||||
echo "Good - your configure finished. Start make now"
|
||||
echo ""
|
||||
fi
|
@ -0,0 +1,91 @@
|
||||
#MIN_CONFIG(3.2)
|
||||
|
||||
CXXFLAGS="$CXXFLAGS $KDE_DEFAULT_CXXFLAGS"
|
||||
AM_INIT_AUTOMAKE(kompose, 0.6)
|
||||
AC_C_BIGENDIAN
|
||||
AC_CHECK_KDEMAXPATHLEN
|
||||
|
||||
AC_PREREQ(2.52)
|
||||
|
||||
X_LIBS="$X_PRE_LIBS $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"
|
||||
|
||||
dnl --- XDamage check
|
||||
AC_CHECK_HEADER(X11/extensions/Xdamage.h, [
|
||||
AC_CHECK_LIB(Xdamage, XDamageQueryExtension, [
|
||||
AC_DEFINE(HAVE_XDAMAGE, 1, [Define if you have the XDamage extens
|
||||
ion])
|
||||
LIB_XDAMAGE="-lXdamage -lXfixes"],, [ -L/usr/X11R6/lib $X_PRE_LIBS $X_LIBS -lXext -lX11 $X_EXTRA_LIBS ])
|
||||
],, [#include <X11/Xlib.h>])
|
||||
AC_SUBST(LIB_XDAMAGE)
|
||||
|
||||
dnl --- XComposite check
|
||||
AC_CHECK_HEADER(X11/extensions/Xcomposite.h, [
|
||||
AC_CHECK_LIB(Xcomposite, XCompositeQueryExtension, [
|
||||
AC_DEFINE(HAVE_XCOMPOSITE, 1, [Define if you have the XComposite extens
|
||||
ion])
|
||||
LIB_XCOMPOSITE="-lXcomposite"],, [ -L/usr/X11R6/lib $X_PRE_LIBS $X_LIBS -lXext -lX11 $X_EXTRA_LIBS ])
|
||||
],, [#include <X11/Xlib.h>])
|
||||
AC_SUBST(LIB_XCOMPOSITE)
|
||||
|
||||
|
||||
# modified kuickshow imlib search
|
||||
#
|
||||
# checking for Imlib2...
|
||||
dnl --- Imlib2 check
|
||||
|
||||
AC_DEFUN([KDE_FIND_IMLIB2_CONFIG],
|
||||
[AC_MSG_CHECKING([for imlib2-config])
|
||||
|
||||
imlib2_config_given=NO
|
||||
ac_imlib2_config=""
|
||||
|
||||
AC_ARG_WITH(imlib2-config,
|
||||
AC_HELP_STRING([--with-imlib2-config=DIR],[directory where "imlib2-config" is located]),
|
||||
[ ac_imlib2_config="$withval/imlib2-config"
|
||||
imlib2_config_given=yes
|
||||
])
|
||||
|
||||
if test "$imlib2_config_given" = "yes"; then
|
||||
if test ! -r $ac_imlib2_config; then
|
||||
AC_MSG_RESULT(wrong file specified)
|
||||
ac_imlib2_config=""
|
||||
else
|
||||
AC_MSG_RESULT($ac_imlib2_config)
|
||||
LIB_IMLIB2=`$ac_imlib2_config --libs`
|
||||
AC_SUBST(LIB_IMLIB2)
|
||||
fi
|
||||
else
|
||||
ac_imlib2_config=`which imlib2-config 2>/dev/null`
|
||||
if test -z "$ac_imlib2_config"; then
|
||||
AC_MSG_RESULT(no)
|
||||
else
|
||||
dummy=`echo "$ac_imlib2_config" | grep '/imlib2-config'`
|
||||
if test -z "$dummy"; then
|
||||
AC_MSG_RESULT(no)
|
||||
ac_imlib2_config=""
|
||||
else
|
||||
LIB_IMLIB2=`$ac_imlib2_config --libs`
|
||||
IMLIB2_CFLAGS=`$ac_imlib2_config --cflags`
|
||||
imlib2_config=`echo "$LIB_IMLIB2" | grep lImlib2`
|
||||
if test -z "$imlib2_config"; then
|
||||
AC_MSG_RESULT(no)
|
||||
ac_imlib2_config=""
|
||||
else
|
||||
AC_SUBST(LIB_IMLIB2)
|
||||
AC_SUBST(IMLIB2_CFLAGS)
|
||||
AC_MSG_RESULT($ac_imlib2_config)
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
])
|
||||
|
||||
dnl Check if Imlib2 is installed properly
|
||||
KDE_FIND_IMLIB2_CONFIG
|
||||
|
||||
if test -z "$ac_imlib2_config"; then
|
||||
dnl AC_MSG_ERROR([You need to install Imlib2 1.x from http://www.enlightenment.org/pages/imlib2.html if your distributor doesn't have a package])
|
||||
echo imlib2-config not found
|
||||
#DO_NOT_COMPILE="$DO_NOT_COMPILE kompose" # maybe one day we'll be in KDE, so I'll leave this here :)
|
||||
fi
|
@ -0,0 +1,2 @@
|
||||
D/en////
|
||||
/Makefile.am/1.1.1.1/Sun Aug 1 13:47:38 2004//
|
@ -0,0 +1 @@
|
||||
kompose/doc
|
@ -0,0 +1 @@
|
||||
oisch@cvs.berlios.de:/cvsroot/kompose
|
@ -0,0 +1,6 @@
|
||||
# the SUBDIRS is filled automatically by am_edit. If files are
|
||||
# in this directory they are installed into the english dir
|
||||
|
||||
KDE_LANG = en
|
||||
KDE_DOCS = kompose
|
||||
SUBDIRS = $(AUTODIRS)
|
@ -0,0 +1,601 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# the SUBDIRS is filled automatically by am_edit. If files are
|
||||
# in this directory they are installed into the english dir
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = doc
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ARTSCCONFIG = @ARTSCCONFIG@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTODIRS = @AUTODIRS@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CONF_FILES = @CONF_FILES@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DCOPIDL = @DCOPIDL@
|
||||
DCOPIDL2CPP = @DCOPIDL2CPP@
|
||||
DCOPIDLNG = @DCOPIDLNG@
|
||||
DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
IMLIB2_CFLAGS = @IMLIB2_CFLAGS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
|
||||
KCONFIG_COMPILER = @KCONFIG_COMPILER@
|
||||
KDECONFIG = @KDECONFIG@
|
||||
KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
|
||||
KDE_INCLUDES = @KDE_INCLUDES@
|
||||
KDE_LDFLAGS = @KDE_LDFLAGS@
|
||||
KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
|
||||
KDE_MT_LIBS = @KDE_MT_LIBS@
|
||||
KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
|
||||
KDE_PLUGIN = @KDE_PLUGIN@
|
||||
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@
|
||||
KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
|
||||
KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
|
||||
KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCOMPAT = @LIBCOMPAT@
|
||||
LIBCRYPT = @LIBCRYPT@
|
||||
LIBDL = @LIBDL@
|
||||
LIBJPEG = @LIBJPEG@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBPNG = @LIBPNG@
|
||||
LIBPTHREAD = @LIBPTHREAD@
|
||||
LIBRESOLV = @LIBRESOLV@
|
||||
LIBS = @LIBS@
|
||||
LIBSM = @LIBSM@
|
||||
LIBSOCKET = @LIBSOCKET@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBUCB = @LIBUCB@
|
||||
LIBUTIL = @LIBUTIL@
|
||||
LIBZ = @LIBZ@
|
||||
LIB_IMLIB2 = @LIB_IMLIB2@
|
||||
LIB_KAB = @LIB_KAB@
|
||||
LIB_KABC = @LIB_KABC@
|
||||
LIB_KDECORE = @LIB_KDECORE@
|
||||
LIB_KDEPIM = @LIB_KDEPIM@
|
||||
LIB_KDEPRINT = @LIB_KDEPRINT@
|
||||
LIB_KDEUI = @LIB_KDEUI@
|
||||
LIB_KFILE = @LIB_KFILE@
|
||||
LIB_KFM = @LIB_KFM@
|
||||
LIB_KHTML = @LIB_KHTML@
|
||||
LIB_KIO = @LIB_KIO@
|
||||
LIB_KPARTS = @LIB_KPARTS@
|
||||
LIB_KSPELL = @LIB_KSPELL@
|
||||
LIB_KSYCOCA = @LIB_KSYCOCA@
|
||||
LIB_KUTILS = @LIB_KUTILS@
|
||||
LIB_POLL = @LIB_POLL@
|
||||
LIB_QPE = @LIB_QPE@
|
||||
LIB_QT = @LIB_QT@
|
||||
LIB_SMB = @LIB_SMB@
|
||||
LIB_X11 = @LIB_X11@
|
||||
LIB_XCOMPOSITE = @LIB_XCOMPOSITE@
|
||||
LIB_XDAMAGE = @LIB_XDAMAGE@
|
||||
LIB_XEXT = @LIB_XEXT@
|
||||
LIB_XRENDER = @LIB_XRENDER@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MCOPIDL = @MCOPIDL@
|
||||
MEINPROC = @MEINPROC@
|
||||
MOC = @MOC@
|
||||
MSGFMT = @MSGFMT@
|
||||
NOOPT_CFLAGS = @NOOPT_CFLAGS@
|
||||
NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
QTE_NORTTI = @QTE_NORTTI@
|
||||
QT_INCLUDES = @QT_INCLUDES@
|
||||
QT_LDFLAGS = @QT_LDFLAGS@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
TOPSUBDIRS = @TOPSUBDIRS@
|
||||
UIC = @UIC@
|
||||
UIC_TR = @UIC_TR@
|
||||
USER_INCLUDES = @USER_INCLUDES@
|
||||
USER_LDFLAGS = @USER_LDFLAGS@
|
||||
USE_EXCEPTIONS = @USE_EXCEPTIONS@
|
||||
USE_RTTI = @USE_RTTI@
|
||||
USE_THREADS = @USE_THREADS@
|
||||
VERSION = @VERSION@
|
||||
WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMLLINT = @XMLLINT@
|
||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_INCLUDES = @X_INCLUDES@
|
||||
X_LDFLAGS = @X_LDFLAGS@
|
||||
X_PRE_LIBS = @X_PRE_LIBS@
|
||||
X_RPATH = @X_RPATH@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
all_includes = @all_includes@
|
||||
all_libraries = @all_libraries@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
include_ARTS_FALSE = @include_ARTS_FALSE@
|
||||
include_ARTS_TRUE = @include_ARTS_TRUE@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
kde_appsdir = @kde_appsdir@
|
||||
kde_bindir = @kde_bindir@
|
||||
kde_confdir = @kde_confdir@
|
||||
kde_datadir = @kde_datadir@
|
||||
kde_htmldir = @kde_htmldir@
|
||||
kde_icondir = @kde_icondir@
|
||||
kde_includes = @kde_includes@
|
||||
kde_kcfgdir = @kde_kcfgdir@
|
||||
kde_libraries = @kde_libraries@
|
||||
kde_libs_htmldir = @kde_libs_htmldir@
|
||||
kde_libs_prefix = @kde_libs_prefix@
|
||||
kde_locale = @kde_locale@
|
||||
kde_mimedir = @kde_mimedir@
|
||||
kde_moduledir = @kde_moduledir@
|
||||
kde_qtver = @kde_qtver@
|
||||
kde_servicesdir = @kde_servicesdir@
|
||||
kde_servicetypesdir = @kde_servicetypesdir@
|
||||
kde_sounddir = @kde_sounddir@
|
||||
kde_styledir = @kde_styledir@
|
||||
kde_templatesdir = @kde_templatesdir@
|
||||
kde_wallpaperdir = @kde_wallpaperdir@
|
||||
kde_widgetdir = @kde_widgetdir@
|
||||
kdeinitdir = @kdeinitdir@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
qt_includes = @qt_includes@
|
||||
qt_libraries = @qt_libraries@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
x_includes = @x_includes@
|
||||
x_libraries = @x_libraries@
|
||||
xdg_appsdir = @xdg_appsdir@
|
||||
xdg_directorydir = @xdg_directorydir@
|
||||
xdg_menudir = @xdg_menudir@
|
||||
KDE_LANG = en
|
||||
KDE_DOCS = kompose
|
||||
SUBDIRS = $(AUTODIRS)
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu doc/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(mkdir_p) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-libtool \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
|
||||
clean clean-generic clean-libtool clean-recursive ctags \
|
||||
ctags-recursive distclean distclean-generic distclean-libtool \
|
||||
distclean-recursive distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-strip installcheck \
|
||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic maintainer-clean-recursive \
|
||||
mostlyclean mostlyclean-generic mostlyclean-libtool \
|
||||
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
|
||||
uninstall uninstall-am uninstall-info-am
|
||||
|
||||
# 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:
|
@ -0,0 +1,3 @@
|
||||
/Makefile.am/1.1.1.1/Sun Aug 1 13:47:38 2004//
|
||||
/index.docbook/1.1.1.1/Sun Aug 1 13:47:38 2004//
|
||||
D
|
@ -0,0 +1 @@
|
||||
kompose/doc/en
|
@ -0,0 +1 @@
|
||||
oisch@cvs.berlios.de:/cvsroot/kompose
|
@ -0,0 +1,2 @@
|
||||
KDE_DOCS = kompose
|
||||
KDE_LANG = en
|
@ -0,0 +1,440 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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.
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = doc/en
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ARTSCCONFIG = @ARTSCCONFIG@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTODIRS = @AUTODIRS@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CONF_FILES = @CONF_FILES@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DCOPIDL = @DCOPIDL@
|
||||
DCOPIDL2CPP = @DCOPIDL2CPP@
|
||||
DCOPIDLNG = @DCOPIDLNG@
|
||||
DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
IMLIB2_CFLAGS = @IMLIB2_CFLAGS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
|
||||
KCONFIG_COMPILER = @KCONFIG_COMPILER@
|
||||
KDECONFIG = @KDECONFIG@
|
||||
KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
|
||||
KDE_INCLUDES = @KDE_INCLUDES@
|
||||
KDE_LDFLAGS = @KDE_LDFLAGS@
|
||||
KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
|
||||
KDE_MT_LIBS = @KDE_MT_LIBS@
|
||||
KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
|
||||
KDE_PLUGIN = @KDE_PLUGIN@
|
||||
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@
|
||||
KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
|
||||
KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
|
||||
KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCOMPAT = @LIBCOMPAT@
|
||||
LIBCRYPT = @LIBCRYPT@
|
||||
LIBDL = @LIBDL@
|
||||
LIBJPEG = @LIBJPEG@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBPNG = @LIBPNG@
|
||||
LIBPTHREAD = @LIBPTHREAD@
|
||||
LIBRESOLV = @LIBRESOLV@
|
||||
LIBS = @LIBS@
|
||||
LIBSM = @LIBSM@
|
||||
LIBSOCKET = @LIBSOCKET@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBUCB = @LIBUCB@
|
||||
LIBUTIL = @LIBUTIL@
|
||||
LIBZ = @LIBZ@
|
||||
LIB_IMLIB2 = @LIB_IMLIB2@
|
||||
LIB_KAB = @LIB_KAB@
|
||||
LIB_KABC = @LIB_KABC@
|
||||
LIB_KDECORE = @LIB_KDECORE@
|
||||
LIB_KDEPIM = @LIB_KDEPIM@
|
||||
LIB_KDEPRINT = @LIB_KDEPRINT@
|
||||
LIB_KDEUI = @LIB_KDEUI@
|
||||
LIB_KFILE = @LIB_KFILE@
|
||||
LIB_KFM = @LIB_KFM@
|
||||
LIB_KHTML = @LIB_KHTML@
|
||||
LIB_KIO = @LIB_KIO@
|
||||
LIB_KPARTS = @LIB_KPARTS@
|
||||
LIB_KSPELL = @LIB_KSPELL@
|
||||
LIB_KSYCOCA = @LIB_KSYCOCA@
|
||||
LIB_KUTILS = @LIB_KUTILS@
|
||||
LIB_POLL = @LIB_POLL@
|
||||
LIB_QPE = @LIB_QPE@
|
||||
LIB_QT = @LIB_QT@
|
||||
LIB_SMB = @LIB_SMB@
|
||||
LIB_X11 = @LIB_X11@
|
||||
LIB_XCOMPOSITE = @LIB_XCOMPOSITE@
|
||||
LIB_XDAMAGE = @LIB_XDAMAGE@
|
||||
LIB_XEXT = @LIB_XEXT@
|
||||
LIB_XRENDER = @LIB_XRENDER@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MCOPIDL = @MCOPIDL@
|
||||
MEINPROC = @MEINPROC@
|
||||
MOC = @MOC@
|
||||
MSGFMT = @MSGFMT@
|
||||
NOOPT_CFLAGS = @NOOPT_CFLAGS@
|
||||
NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
QTE_NORTTI = @QTE_NORTTI@
|
||||
QT_INCLUDES = @QT_INCLUDES@
|
||||
QT_LDFLAGS = @QT_LDFLAGS@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
TOPSUBDIRS = @TOPSUBDIRS@
|
||||
UIC = @UIC@
|
||||
UIC_TR = @UIC_TR@
|
||||
USER_INCLUDES = @USER_INCLUDES@
|
||||
USER_LDFLAGS = @USER_LDFLAGS@
|
||||
USE_EXCEPTIONS = @USE_EXCEPTIONS@
|
||||
USE_RTTI = @USE_RTTI@
|
||||
USE_THREADS = @USE_THREADS@
|
||||
VERSION = @VERSION@
|
||||
WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMLLINT = @XMLLINT@
|
||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_INCLUDES = @X_INCLUDES@
|
||||
X_LDFLAGS = @X_LDFLAGS@
|
||||
X_PRE_LIBS = @X_PRE_LIBS@
|
||||
X_RPATH = @X_RPATH@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
all_includes = @all_includes@
|
||||
all_libraries = @all_libraries@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
include_ARTS_FALSE = @include_ARTS_FALSE@
|
||||
include_ARTS_TRUE = @include_ARTS_TRUE@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
kde_appsdir = @kde_appsdir@
|
||||
kde_bindir = @kde_bindir@
|
||||
kde_confdir = @kde_confdir@
|
||||
kde_datadir = @kde_datadir@
|
||||
kde_htmldir = @kde_htmldir@
|
||||
kde_icondir = @kde_icondir@
|
||||
kde_includes = @kde_includes@
|
||||
kde_kcfgdir = @kde_kcfgdir@
|
||||
kde_libraries = @kde_libraries@
|
||||
kde_libs_htmldir = @kde_libs_htmldir@
|
||||
kde_libs_prefix = @kde_libs_prefix@
|
||||
kde_locale = @kde_locale@
|
||||
kde_mimedir = @kde_mimedir@
|
||||
kde_moduledir = @kde_moduledir@
|
||||
kde_qtver = @kde_qtver@
|
||||
kde_servicesdir = @kde_servicesdir@
|
||||
kde_servicetypesdir = @kde_servicetypesdir@
|
||||
kde_sounddir = @kde_sounddir@
|
||||
kde_styledir = @kde_styledir@
|
||||
kde_templatesdir = @kde_templatesdir@
|
||||
kde_wallpaperdir = @kde_wallpaperdir@
|
||||
kde_widgetdir = @kde_widgetdir@
|
||||
kdeinitdir = @kdeinitdir@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
qt_includes = @qt_includes@
|
||||
qt_libraries = @qt_libraries@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
x_includes = @x_includes@
|
||||
x_libraries = @x_libraries@
|
||||
xdg_appsdir = @xdg_appsdir@
|
||||
xdg_directorydir = @xdg_directorydir@
|
||||
xdg_menudir = @xdg_menudir@
|
||||
KDE_DOCS = kompose
|
||||
KDE_LANG = en
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/en/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu doc/en/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-libtool
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-exec install-exec-am \
|
||||
install-info install-info-am install-man install-strip \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
|
||||
uninstall-info-am
|
||||
|
||||
# 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:
|
@ -0,0 +1,555 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
|
||||
<!ENTITY kompose "<application>kompose 0.1</application>">
|
||||
<!ENTITY kappname "&kompose;"><!-- Do *not* replace kappname-->
|
||||
<!ENTITY package "kde-module"><!-- kdebase, kdeadmin, etc -->
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE"><!-- change language only here -->
|
||||
|
||||
|
||||
<!-- Do not define any other entities; instead, use the entities
|
||||
from kde-genent.entities and $LANG/user.entities. -->
|
||||
]>
|
||||
<!-- kdoctemplate v0.8 October 1 1999
|
||||
Minor update to "Credits and Licenses" section on August 24, 2000
|
||||
Removed "Revision history" section on 22 January 2001
|
||||
Changed to Installation/Help menu entities 18 October 2001
|
||||
Other minor cleanup and changes 18 October 2001 -->
|
||||
|
||||
|
||||
<!--
|
||||
This template was designed by: David Rugge davidrugge@mindspring.com
|
||||
with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr
|
||||
and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de
|
||||
of the KDE DocBook team.
|
||||
|
||||
You may freely use this template for writing any sort of KDE documentation.
|
||||
If you have any changes or improvements, please let us know.
|
||||
|
||||
Remember:
|
||||
- in XML, the case of the <tags> and attributes is relevant ;
|
||||
- also, quote all attributes.
|
||||
|
||||
Please don't forget to remove all these comments in your final documentation,
|
||||
thanks ;-).
|
||||
-->
|
||||
|
||||
<!-- ................................................................ -->
|
||||
|
||||
<!-- The language must NOT be changed here. -->
|
||||
|
||||
<book lang="&language;">
|
||||
|
||||
<!-- This header contains all of the meta-information for the document such
|
||||
as Authors, publish date, the abstract, and Keywords -->
|
||||
|
||||
<bookinfo>
|
||||
<title>The &kompose; Handbook</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname></firstname>
|
||||
<othername></othername>
|
||||
<surname>Hans Oischinger</surname>
|
||||
<affiliation>
|
||||
<address><email>oisch@sourceforge.net</email></address>
|
||||
</affiliation>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
|
||||
<copyright>
|
||||
<year>1999</year>
|
||||
<year>2004</year>
|
||||
<holder>Hans Oischinger</holder>
|
||||
</copyright>
|
||||
<!-- Translators: put here the copyright notice of the translation -->
|
||||
<!-- Put here the FDL notice. Read the explanation in fdl-notice.docbook
|
||||
and in the FDL itself on how to use it. -->
|
||||
<legalnotice>&FDLNotice;</legalnotice>
|
||||
|
||||
<!-- Date and version information of the documentation
|
||||
Don't forget to include this last date and this last revision number, we
|
||||
need them for translation coordination !
|
||||
Please respect the format of the date (YYYY-MM-DD) and of the version
|
||||
(V.MM.LL), it could be used by automation scripts.
|
||||
Do NOT change these in the translation. -->
|
||||
|
||||
<date>2001-10-18</date>
|
||||
<releaseinfo>0.1</releaseinfo>
|
||||
|
||||
<!-- Abstract about this handbook -->
|
||||
|
||||
<abstract>
|
||||
<para>
|
||||
&kompose; is an application specially designed to do nothing you would
|
||||
ever want.
|
||||
</para>
|
||||
</abstract>
|
||||
|
||||
<!-- This is a set of Keywords for indexing by search engines.
|
||||
Please at least include KDE, the KDE package it is in, the name
|
||||
of your application, and a few relevant keywords. -->
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>kompose</keyword>
|
||||
<keyword>nothing</keyword>
|
||||
<keyword>nothing else</keyword>
|
||||
</keywordset>
|
||||
|
||||
</bookinfo>
|
||||
|
||||
<!-- The contents of the documentation begin here. Label
|
||||
each chapter so with the id attribute. This is necessary for two reasons: it
|
||||
allows you to easily reference the chapter from other chapters of your
|
||||
document, and if there is no ID, the name of the generated HTML files will vary
|
||||
from time to time making it hard to manage for maintainers and for the CVS
|
||||
system. Any chapter labelled (OPTIONAL) may be left out at the author's
|
||||
discretion. Other chapters should not be left out in order to maintain a
|
||||
consistent documentation style across all KDE apps. -->
|
||||
|
||||
<chapter id="introduction">
|
||||
<title>Introduction</title>
|
||||
|
||||
<!-- The introduction chapter contains a brief introduction for the
|
||||
application that explains what it does and where to report
|
||||
problems. Basically a long version of the abstract. Don't include a
|
||||
revision history. (see installation appendix comment) -->
|
||||
|
||||
<para>
|
||||
&kompose; is a program that lets you do absolutely nothing. Please report
|
||||
any problems or feature requests to the &kde; mailing lists.
|
||||
</para>
|
||||
</chapter>
|
||||
|
||||
<chapter id="using-kompose">
|
||||
<title>Using &kompose;</title>
|
||||
|
||||
<!-- This chapter should tell the user how to use your app. You should use as
|
||||
many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
|
||||
your application. -->
|
||||
|
||||
<para>
|
||||
|
||||
<!-- Note that all graphics should be in .png format. Use no gifs because of
|
||||
patent issues. -->
|
||||
|
||||
<screenshot>
|
||||
<screeninfo>Here's a screenshot of &kompose;</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="screenshot.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="screenshot.eps" format="EPS"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>Screenshot</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
</para>
|
||||
|
||||
|
||||
<sect1 id="kompose-features">
|
||||
<title>More &kompose; features</title>
|
||||
|
||||
<para>It slices! It dices! and it comes with a free toaster!</para>
|
||||
<para>
|
||||
The Squiggle Tool <guiicon><inlinemediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="squiggle.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="squiggle.eps" format="EPS"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>Squiggle</phrase>
|
||||
</textobject>
|
||||
</inlinemediaobject></guiicon> is used to draw squiggly lines all over
|
||||
the &kompose; main window. It's not a bug, it's a feature!
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
<chapter id="commands">
|
||||
<title>Command Reference</title>
|
||||
|
||||
<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the
|
||||
application windows and their menubar and toolbar commands for easy reference.
|
||||
Also include any keys that have a special function but have no equivalent in the
|
||||
menus or toolbars. This may not be necessary for small apps or apps with no tool
|
||||
or menu bars. -->
|
||||
|
||||
<sect1 id="kompose-mainwindow">
|
||||
<title>The main &kompose; window</title>
|
||||
|
||||
<sect2>
|
||||
<title>The File Menu</title>
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<shortcut>
|
||||
<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
|
||||
</shortcut>
|
||||
<guimenu>File</guimenu>
|
||||
<guimenuitem>New</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Creates a new document</action></para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<shortcut>
|
||||
<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo>
|
||||
</shortcut>
|
||||
<guimenu>File</guimenu>
|
||||
<guimenuitem>Save</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Saves the document</action></para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<shortcut>
|
||||
<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
|
||||
</shortcut>
|
||||
<guimenu>File</guimenu>
|
||||
<guimenuitem>Quit</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Quits</action> &kompose;</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>The <guimenu>Help</guimenu> Menu</title>
|
||||
|
||||
<!-- Assuming you have a standard help menu (help, what's this, about -->
|
||||
<!-- &kompose;, about KDE) then the documentation is already written. -->
|
||||
<!-- The following entity is valid anywhere that a variablelist is -->
|
||||
<!-- valid. -->
|
||||
|
||||
&help.menu.documentation;
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
<chapter id="developers">
|
||||
<title>Developer's Guide to &kompose;</title>
|
||||
|
||||
<!-- (OPTIONAL) A Programming/Scripting reference chapter should be
|
||||
used for apps that use plugins or that provide their own scripting hooks
|
||||
and/or development libraries. -->
|
||||
|
||||
<para>
|
||||
Programming &kompose; plugins is a joy to behold. Just read through the next
|
||||
66 pages of API's to learn how!
|
||||
</para>
|
||||
|
||||
<!-- Use refentries to describe APIs. Refentries are fairly complicated and you
|
||||
should consult the docbook reference for further details. The example below was
|
||||
taken from that reference and shortened a bit for readability. -->
|
||||
|
||||
<refentry id="re-1007-unmanagechildren-1">
|
||||
<refmeta>
|
||||
<refentrytitle>XtUnmanageChildren</refentrytitle>
|
||||
<refmiscinfo>Xt - Geometry Management</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>XtUnmanageChildren
|
||||
</refname>
|
||||
<refpurpose>remove a list of children from a parent widget's managed
|
||||
list.
|
||||
<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm>
|
||||
<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm>
|
||||
</refpurpose>
|
||||
|
||||
</refnamediv>
|
||||
<refsynopsisdiv>
|
||||
<refsynopsisdivinfo>
|
||||
<date>4 March 1996</date>
|
||||
</refsynopsisdivinfo>
|
||||
<synopsis>
|
||||
void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>)
|
||||
WidgetList <replaceable class="parameter">children</replaceable>;
|
||||
Cardinal <replaceable class="parameter">num_children</replaceable>;
|
||||
</synopsis>
|
||||
|
||||
<refsect2 id="r2-1007-unmanagechildren-1">
|
||||
<title>Inputs</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><replaceable class="parameter">children</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Specifies an array of child widgets. Each child must be of
|
||||
class RectObj or any subclass thereof.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable class="parameter">num_children</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2></refsynopsisdiv>
|
||||
|
||||
<refsect1 id="r1-1007-unmanagechildren-1">
|
||||
<title>Description
|
||||
</title>
|
||||
<para><function>XtUnmanageChildren()</function> unmaps the specified widgets
|
||||
and removes them from their parent's geometry management.
|
||||
The widgets will disappear from the screen, and (depending
|
||||
on its parent) may no longer have screen space allocated for
|
||||
them.
|
||||
</para>
|
||||
<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have
|
||||
the same parent.
|
||||
</para>
|
||||
<para>See the “Algorithm” section below for full details of the
|
||||
widget unmanagement procedure.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="r1-1007-unmanagechildren-2">
|
||||
<title>Usage</title>
|
||||
<para>Unmanaging widgets is the usual method for temporarily
|
||||
making them invisible. They can be re-managed with
|
||||
<function>XtManageChildren()</function>.
|
||||
</para>
|
||||
<para>You can unmap a widget, but leave it under geometry
|
||||
management by calling <function>XtUnmapWidget()</function>. You can
|
||||
destroy a widget's window without destroying the widget by
|
||||
calling <function>XtUnrealizeWidget()</function>. You can destroy a
|
||||
widget completely with <function>XtDestroyWidget()</function>.
|
||||
</para>
|
||||
<para>If you are only going to unmanage a single widget, it is
|
||||
more convenient to call <function>XtUnmanageChild()</function>. It is
|
||||
often more convenient to call <function>XtUnmanageChild()</function>
|
||||
several times than it is to declare and initialize an array
|
||||
of widgets to pass to <function>XtUnmanageChildren()</function>. Calling
|
||||
<function>XtUnmanageChildren()</function> is more efficient, however,
|
||||
because it only calls the parent's <function>change_managed()</function>
|
||||
method once.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="r1-1007-unmanagechildren-3">
|
||||
<title>Algorithm
|
||||
</title>
|
||||
<para><function>XtUnmanageChildren()</function> performs the following:
|
||||
</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>-
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Ignores the child if it already is unmanaged or is being
|
||||
destroyed.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>-
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Otherwise, if the child is realized, it makes it nonvisible
|
||||
by unmapping it.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="r1-1007-unmanagechildren-4">
|
||||
<title>Structures</title>
|
||||
<para>The <type>WidgetList</type> type is simply an array of widgets:
|
||||
</para>
|
||||
<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList;
|
||||
</screen>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
</chapter>
|
||||
|
||||
<chapter id="faq">
|
||||
<title>Questions and Answers</title>
|
||||
|
||||
<!-- (OPTIONAL but recommended) This chapter should include all of the silly
|
||||
(and not-so-silly) newbie questions that fill up your mailbox. This chapter
|
||||
should be reserved for BRIEF questions and answers! If one question uses more
|
||||
than a page or so then it should probably be part of the
|
||||
"Using this Application" chapter instead. You should use links to
|
||||
cross-reference questions to the parts of your documentation that answer them.
|
||||
This is also a great place to provide pointers to other FAQ's if your users
|
||||
must do some complicated configuration on other programs in order for your
|
||||
application work. -->
|
||||
|
||||
&reporting.bugs;
|
||||
&updating.documentation;
|
||||
|
||||
<qandaset id="faqlist">
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>My Mouse doesn't work. How do I quit &kompose;?</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>You silly goose! Check out the <link linkend="commands">Commands
|
||||
Section</link> for the answer.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Why can't I twiddle my documents?</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>You can only twiddle your documents if you have the foobar.lib
|
||||
installed.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
</qandaset>
|
||||
</chapter>
|
||||
|
||||
<chapter id="credits">
|
||||
|
||||
<!-- Include credits for the programmers, documentation writers, and
|
||||
contributors here. The license for your software should then be included below
|
||||
the credits with a reference to the appropriate license file included in the KDE
|
||||
distribution. -->
|
||||
|
||||
<title>Credits and License</title>
|
||||
|
||||
<para>
|
||||
&kompose;
|
||||
</para>
|
||||
<para>
|
||||
Program copyright 2004 Hans Oischinger <email>oisch@sourceforge.net</email>
|
||||
</para>
|
||||
<para>
|
||||
Contributors:
|
||||
<itemizedlist>
|
||||
<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para>
|
||||
</listitem>
|
||||
<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Documentation copyright 2004 Hans Oischinger <email>oisch@sourceforge.net</email>
|
||||
</para>
|
||||
|
||||
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
|
||||
|
||||
&underFDL; <!-- FDL: do not remove -->
|
||||
|
||||
<!-- Determine which license your application is licensed under,
|
||||
and delete all the remaining licenses below:
|
||||
|
||||
(NOTE: All documentation are licensed under the FDL,
|
||||
regardless of what license the application uses) -->
|
||||
|
||||
&underGPL; <!-- GPL License -->
|
||||
&underBSDLicense; <!-- BSD License -->
|
||||
&underArtisticLicense; <!-- BSD Artistic License -->
|
||||
&underX11License; <!-- X11 License -->
|
||||
|
||||
</chapter>
|
||||
|
||||
<appendix id="installation">
|
||||
<title>Installation</title>
|
||||
|
||||
<sect1 id="getting-kompose">
|
||||
<title>How to obtain &kompose;</title>
|
||||
|
||||
<!-- This first entity contains boiler plate for applications that are
|
||||
part of KDE CVS. You should remove it if you are releasing your
|
||||
application -->
|
||||
|
||||
&install.intro.documentation;
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1 id="requirements">
|
||||
<title>Requirements</title>
|
||||
|
||||
<!--
|
||||
List any special requirements for your application here. This should include:
|
||||
.Libraries or other software that is not included in kdesupport,
|
||||
kdelibs, or kdebase.
|
||||
.Hardware requirements like amount of RAM, disk space, graphics card
|
||||
capabilities, screen resolution, special expansion cards, etc.
|
||||
.Operating systems the app will run on. If your app is designed only for a
|
||||
specific OS, (you wrote a graphical LILO configurator for example) put this
|
||||
information here.
|
||||
-->
|
||||
|
||||
<para>
|
||||
In order to successfully use &kompose;, you need &kde; 1.1. Foobar.lib is
|
||||
required in order to support the advanced &kompose; features. &kompose; uses
|
||||
about 5 megs of memory to run, but this may vary depending on your
|
||||
platform and configuration.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
All required libraries as well as &kompose; itself can be found
|
||||
on <ulink url="ftp://ftp.kompose.org">The &kompose; home page</ulink>.
|
||||
</para>
|
||||
|
||||
<!-- For a list of updates, you may refer to the application web site
|
||||
or the ChangeLog file, or ... -->
|
||||
<para>
|
||||
You can find a list of changes at <ulink
|
||||
url="http://apps.kde.org/kompose">http://apps.kde.org/kompose</ulink>.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="compilation">
|
||||
<title>Compilation and Installation</title>
|
||||
|
||||
<!-- This entity contains the boilerplate text for standard -->
|
||||
<!-- compilation instructions. If your application requires any -->
|
||||
<!-- special handling, remove it, and replace with your own text. -->
|
||||
|
||||
&install.compile.documentation;
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1 id="configuration">
|
||||
<title>Configuration</title>
|
||||
|
||||
<para>Don't forget to tell your system to start the <filename>dtd</filename>
|
||||
dicer-toaster daemon first, or &kompose; won't work !</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
</appendix>
|
||||
|
||||
&documentation.index;
|
||||
</book>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: sgml
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-general-insert-case:lower
|
||||
sgml-indent-step:0
|
||||
sgml-indent-data:nil
|
||||
End:
|
||||
|
||||
vim:tabstop=2:shiftwidth=2:expandtab
|
||||
-->
|
||||
|
@ -0,0 +1,3 @@
|
||||
/Makefile.am/1.1.1.1/Sun Aug 1 13:47:38 2004//
|
||||
/Makefile.in/1.1.1.1/Sun Aug 1 13:47:38 2004//
|
||||
D
|
@ -0,0 +1 @@
|
||||
kompose/po
|
@ -0,0 +1 @@
|
||||
oisch@cvs.berlios.de:/cvsroot/kompose
|
@ -0,0 +1 @@
|
||||
POFILES = AUTO
|
@ -0,0 +1,439 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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.
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = po
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ARTSCCONFIG = @ARTSCCONFIG@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTODIRS = @AUTODIRS@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CONF_FILES = @CONF_FILES@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DCOPIDL = @DCOPIDL@
|
||||
DCOPIDL2CPP = @DCOPIDL2CPP@
|
||||
DCOPIDLNG = @DCOPIDLNG@
|
||||
DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
IMLIB2_CFLAGS = @IMLIB2_CFLAGS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
|
||||
KCONFIG_COMPILER = @KCONFIG_COMPILER@
|
||||
KDECONFIG = @KDECONFIG@
|
||||
KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
|
||||
KDE_INCLUDES = @KDE_INCLUDES@
|
||||
KDE_LDFLAGS = @KDE_LDFLAGS@
|
||||
KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
|
||||
KDE_MT_LIBS = @KDE_MT_LIBS@
|
||||
KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
|
||||
KDE_PLUGIN = @KDE_PLUGIN@
|
||||
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@
|
||||
KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
|
||||
KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
|
||||
KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCOMPAT = @LIBCOMPAT@
|
||||
LIBCRYPT = @LIBCRYPT@
|
||||
LIBDL = @LIBDL@
|
||||
LIBJPEG = @LIBJPEG@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBPNG = @LIBPNG@
|
||||
LIBPTHREAD = @LIBPTHREAD@
|
||||
LIBRESOLV = @LIBRESOLV@
|
||||
LIBS = @LIBS@
|
||||
LIBSM = @LIBSM@
|
||||
LIBSOCKET = @LIBSOCKET@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBUCB = @LIBUCB@
|
||||
LIBUTIL = @LIBUTIL@
|
||||
LIBZ = @LIBZ@
|
||||
LIB_IMLIB2 = @LIB_IMLIB2@
|
||||
LIB_KAB = @LIB_KAB@
|
||||
LIB_KABC = @LIB_KABC@
|
||||
LIB_KDECORE = @LIB_KDECORE@
|
||||
LIB_KDEPIM = @LIB_KDEPIM@
|
||||
LIB_KDEPRINT = @LIB_KDEPRINT@
|
||||
LIB_KDEUI = @LIB_KDEUI@
|
||||
LIB_KFILE = @LIB_KFILE@
|
||||
LIB_KFM = @LIB_KFM@
|
||||
LIB_KHTML = @LIB_KHTML@
|
||||
LIB_KIO = @LIB_KIO@
|
||||
LIB_KPARTS = @LIB_KPARTS@
|
||||
LIB_KSPELL = @LIB_KSPELL@
|
||||
LIB_KSYCOCA = @LIB_KSYCOCA@
|
||||
LIB_KUTILS = @LIB_KUTILS@
|
||||
LIB_POLL = @LIB_POLL@
|
||||
LIB_QPE = @LIB_QPE@
|
||||
LIB_QT = @LIB_QT@
|
||||
LIB_SMB = @LIB_SMB@
|
||||
LIB_X11 = @LIB_X11@
|
||||
LIB_XCOMPOSITE = @LIB_XCOMPOSITE@
|
||||
LIB_XDAMAGE = @LIB_XDAMAGE@
|
||||
LIB_XEXT = @LIB_XEXT@
|
||||
LIB_XRENDER = @LIB_XRENDER@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MCOPIDL = @MCOPIDL@
|
||||
MEINPROC = @MEINPROC@
|
||||
MOC = @MOC@
|
||||
MSGFMT = @MSGFMT@
|
||||
NOOPT_CFLAGS = @NOOPT_CFLAGS@
|
||||
NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
QTE_NORTTI = @QTE_NORTTI@
|
||||
QT_INCLUDES = @QT_INCLUDES@
|
||||
QT_LDFLAGS = @QT_LDFLAGS@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
TOPSUBDIRS = @TOPSUBDIRS@
|
||||
UIC = @UIC@
|
||||
UIC_TR = @UIC_TR@
|
||||
USER_INCLUDES = @USER_INCLUDES@
|
||||
USER_LDFLAGS = @USER_LDFLAGS@
|
||||
USE_EXCEPTIONS = @USE_EXCEPTIONS@
|
||||
USE_RTTI = @USE_RTTI@
|
||||
USE_THREADS = @USE_THREADS@
|
||||
VERSION = @VERSION@
|
||||
WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMLLINT = @XMLLINT@
|
||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_INCLUDES = @X_INCLUDES@
|
||||
X_LDFLAGS = @X_LDFLAGS@
|
||||
X_PRE_LIBS = @X_PRE_LIBS@
|
||||
X_RPATH = @X_RPATH@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
all_includes = @all_includes@
|
||||
all_libraries = @all_libraries@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
include_ARTS_FALSE = @include_ARTS_FALSE@
|
||||
include_ARTS_TRUE = @include_ARTS_TRUE@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
kde_appsdir = @kde_appsdir@
|
||||
kde_bindir = @kde_bindir@
|
||||
kde_confdir = @kde_confdir@
|
||||
kde_datadir = @kde_datadir@
|
||||
kde_htmldir = @kde_htmldir@
|
||||
kde_icondir = @kde_icondir@
|
||||
kde_includes = @kde_includes@
|
||||
kde_kcfgdir = @kde_kcfgdir@
|
||||
kde_libraries = @kde_libraries@
|
||||
kde_libs_htmldir = @kde_libs_htmldir@
|
||||
kde_libs_prefix = @kde_libs_prefix@
|
||||
kde_locale = @kde_locale@
|
||||
kde_mimedir = @kde_mimedir@
|
||||
kde_moduledir = @kde_moduledir@
|
||||
kde_qtver = @kde_qtver@
|
||||
kde_servicesdir = @kde_servicesdir@
|
||||
kde_servicetypesdir = @kde_servicetypesdir@
|
||||
kde_sounddir = @kde_sounddir@
|
||||
kde_styledir = @kde_styledir@
|
||||
kde_templatesdir = @kde_templatesdir@
|
||||
kde_wallpaperdir = @kde_wallpaperdir@
|
||||
kde_widgetdir = @kde_widgetdir@
|
||||
kdeinitdir = @kdeinitdir@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
qt_includes = @qt_includes@
|
||||
qt_libraries = @qt_libraries@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
x_includes = @x_includes@
|
||||
x_libraries = @x_libraries@
|
||||
xdg_appsdir = @xdg_appsdir@
|
||||
xdg_directorydir = @xdg_directorydir@
|
||||
xdg_menudir = @xdg_menudir@
|
||||
POFILES = AUTO
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu po/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu po/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-libtool
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-exec install-exec-am \
|
||||
install-info install-info-am install-man install-strip \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
|
||||
uninstall-info-am
|
||||
|
||||
# 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:
|
@ -0,0 +1,560 @@
|
||||
# translation of da.po to Danish
|
||||
# Danish translations for PACKAGE package
|
||||
# Danske oversættelser for pakke PACKAGE.
|
||||
# Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Frederik Dannemare <frederik@dannemare.net>, 2004.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: da\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-06-09 15:37+0200\n"
|
||||
"PO-Revision-Date: 2004-04-29 23:36+0200\n"
|
||||
"Last-Translator: Frederik Dannemare <frederik@dannemare.net>\n"
|
||||
"Language-Team: Danish <frederik@dannemare.net>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.3.1\n"
|
||||
|
||||
#: _translatorinfo.cpp:1
|
||||
msgid ""
|
||||
"_: NAME OF TRANSLATORS\n"
|
||||
"Your names"
|
||||
msgstr ""
|
||||
|
||||
#: _translatorinfo.cpp:3
|
||||
msgid ""
|
||||
"_: EMAIL OF TRANSLATORS\n"
|
||||
"Your emails"
|
||||
msgstr ""
|
||||
|
||||
#: komposedesktopwidget.cpp:60
|
||||
msgid "Desktop %1 - %2"
|
||||
msgstr ""
|
||||
|
||||
#: komposeglobal.cpp:158
|
||||
msgid "Komposé (ungrouped)"
|
||||
msgstr ""
|
||||
|
||||
#: komposeglobal.cpp:162
|
||||
msgid "Komposé (grouped by virtual desktops)"
|
||||
msgstr ""
|
||||
|
||||
#: komposeglobal.cpp:166
|
||||
msgid "Komposé (current virtual desktop)"
|
||||
msgstr ""
|
||||
|
||||
#: komposeglobal.cpp:175
|
||||
msgid "Configure &Global Shortcuts..."
|
||||
msgstr ""
|
||||
|
||||
#: komposeglobal.cpp:176
|
||||
msgid "About Komposé"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:38
|
||||
msgid "Komposé Preferences"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:44
|
||||
msgid "Behavior"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:46
|
||||
msgid "Layouts"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:50
|
||||
msgid "Default Layout"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:52
|
||||
msgid ""
|
||||
"Determines which view should be started by default (e.g. when you click on "
|
||||
"the systray icon)."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:55
|
||||
msgid "Ungrouped"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:56
|
||||
msgid "Fullscreen layout that shows all windows in no specific order"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:59
|
||||
msgid "Grouped by virtual desktops"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:60
|
||||
msgid ""
|
||||
"Fullscreen layout that shows a representation of your virtual desktops\n"
|
||||
" and places the windows inside."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:63
|
||||
msgid "Current virtual desktop"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:64
|
||||
msgid ""
|
||||
"Fullscreen layout that shows the windows of the desktop you're currently "
|
||||
"working on."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:71
|
||||
msgid "Xinerama"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:74
|
||||
msgid "Use the whole desktop for Komposé"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:77
|
||||
msgid "Use screen:"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:81
|
||||
msgid "Specify the screen where Komposé should appear."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:91 komposepreferences.cpp:99
|
||||
msgid "Screenshots"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:93
|
||||
msgid "Use XComposite if available"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:94
|
||||
msgid ""
|
||||
"Making use of the Composite extension of newer X Servers makes the grabbing "
|
||||
"of screenshots obsolete.\n"
|
||||
"The contents of all windows are drawn in back buffers that will be accessed "
|
||||
"by Komposé\n"
|
||||
"Note that the Composite implementation of even modern graphic card drivers "
|
||||
"is still very slow and may make your system pretty unusable."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:102
|
||||
msgid "Passive screenshots"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:103
|
||||
msgid ""
|
||||
"Create a screenshot whenever you raise or active a window.\n"
|
||||
"When selected the amount the annoying popup-effect before every Komposé "
|
||||
"activation will be minimized to nearly zero.\n"
|
||||
"The drawback is that the screenshots are not so recent and may not display "
|
||||
"the actual content."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:108
|
||||
msgid "Delay between screenshots (ms):"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:111
|
||||
msgid ""
|
||||
"Specifies the time to wait between the activation of a window and the "
|
||||
"screenshot taking.\n"
|
||||
"Increase it when your windows need more time to draw themselves after "
|
||||
"activation.\n"
|
||||
"Values below 300ms are not recommended, but may work in some cases."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:117
|
||||
msgid "Cache scaled Screenshots"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:118
|
||||
msgid ""
|
||||
"This may avoid some scaling operations to be called repeatedly when Komposé "
|
||||
"has been displayed before and the screenshot's size didn't change.\n"
|
||||
"It will however increase memory usage quite a bit."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:126
|
||||
msgid "Autoactivate when mouse moves into"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:128
|
||||
msgid "Top-left corner"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:130
|
||||
msgid "Top-right corner"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:132
|
||||
msgid "Bottom-left corner"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:134
|
||||
msgid "Bottom-right corner"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:137
|
||||
msgid "Top edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:139
|
||||
msgid "Bottom edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:141
|
||||
msgid "Left edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:143
|
||||
msgid "Right edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:147
|
||||
msgid "Delay until activation (ms):"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:150
|
||||
msgid ""
|
||||
"Specifies the time in ms for which the mouse pointer must rest in the corner "
|
||||
"until auto-activation."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:165
|
||||
msgid "Enable image effects"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:166
|
||||
msgid ""
|
||||
"Lighten windows when the mouse moves over it or gray out minimized windows.\n"
|
||||
"Depending on your system specs this can be a bit slower."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:171
|
||||
msgid "Show Desktop number on Systray icon"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:172
|
||||
msgid ""
|
||||
"Displays the number of the currently active Desktop on the Komposé systray "
|
||||
"icon."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:177
|
||||
msgid "Window Titles"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:180
|
||||
msgid "Show window titles"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:181
|
||||
msgid "Select Font..."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:182
|
||||
msgid "Display the name of every window in Komposé"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:190
|
||||
msgid "Text color:"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:194
|
||||
msgid "Shadow color:"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:204
|
||||
msgid "Task Icons"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:205
|
||||
msgid "Show icons"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:220
|
||||
msgid "Grouped by Virtual Desktops"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:221
|
||||
msgid "Layout empty virtual desktops minimized"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:222
|
||||
msgid ""
|
||||
"Check this if you want empty virtual desktops to take less space on the "
|
||||
"screen.\n"
|
||||
"Uncheck it if you want them to be arranged statically, each of the same size."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:228
|
||||
msgid "Desktop frame color:"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:230
|
||||
msgid "Desktop frame highlight color:"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:235
|
||||
msgid "Select Desktop Names Font..."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:253
|
||||
msgid "16x16"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:256
|
||||
msgid "32x32"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:259
|
||||
msgid "64x64"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:262
|
||||
msgid "Don't scale, show as they are (preferably bigger)"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:52
|
||||
msgid "Show Komposé (default view)"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:53
|
||||
msgid "Displays the view you have configured as default"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:56
|
||||
msgid "Show Komposé (ungrouped)"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:57
|
||||
msgid "Displays all windows unsorted"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:60
|
||||
msgid "Show Komposé (grouped by virtual desktops)"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:61
|
||||
msgid "Displays all windows sorted by virtual desktops"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:64
|
||||
msgid "Show Komposé (current virtual desktop)"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:65
|
||||
msgid "Displays all windows on the current desktop"
|
||||
msgstr ""
|
||||
|
||||
#: komposetask.cpp:153
|
||||
msgid "modified"
|
||||
msgstr ""
|
||||
|
||||
#: komposetaskprefswidget.cpp:31
|
||||
msgid "Task Actions"
|
||||
msgstr ""
|
||||
|
||||
#: komposetaskprefswidget.cpp:32
|
||||
msgid "Task"
|
||||
msgstr ""
|
||||
|
||||
#: komposetaskwidget.cpp:353
|
||||
msgid "Minimize/Restore"
|
||||
msgstr ""
|
||||
|
||||
#: komposetaskwidget.cpp:367
|
||||
msgid "&All Desktops"
|
||||
msgstr ""
|
||||
|
||||
#: komposetaskwidget.cpp:380
|
||||
msgid "To &Desktop"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:32
|
||||
msgid "A fullscreen task manager for KDE"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:38
|
||||
msgid "Do not show the systray icon"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:39
|
||||
msgid "Display the default view and exit (non daemon mode)"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:64
|
||||
msgid "Kompose"
|
||||
msgstr ""
|
||||
|
||||
#: rc.cpp:3
|
||||
#, no-c-format
|
||||
msgid "C&ustom"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "FTP Monitor Configuration"
|
||||
#~ msgstr "FTP Monitor-konfiguration"
|
||||
|
||||
#~ msgid "&General"
|
||||
#~ msgstr "&Generel"
|
||||
|
||||
#~ msgid "Notifications"
|
||||
#~ msgstr "Info-beskeder"
|
||||
|
||||
#~ msgid "Popups"
|
||||
#~ msgstr "Popups"
|
||||
|
||||
#~ msgid "Notifications Enabled"
|
||||
#~ msgstr "Info-beskeder aktiveret"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This will enable/disable notifications which appears when number of "
|
||||
#~ "connections change."
|
||||
#~ msgstr ""
|
||||
#~ "Dette vil aktivere/deaktivere info-beskeder, som fremkommer, når antallet "
|
||||
#~ "af tilslutninger ændrer sig."
|
||||
|
||||
#~ msgid " msecs"
|
||||
#~ msgstr " millisek"
|
||||
|
||||
#~ msgid "Notify Popup Time"
|
||||
#~ msgstr "Popup-visningstid"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Time for which popup notifications (which appear when number of "
|
||||
#~ "connections change) shoul remain alive"
|
||||
#~ msgstr ""
|
||||
#~ "Tiden, hvormed popup info-beskeder (som fremkommer, når antallet af "
|
||||
#~ "tilslutninger ændrer sig) viser sig"
|
||||
|
||||
#~ msgid "&FTP Daemon"
|
||||
#~ msgstr "&FTP-dæmon"
|
||||
|
||||
#~ msgid "FTP Daemon"
|
||||
#~ msgstr "FTP-dæmon"
|
||||
|
||||
#~ msgid "Paths"
|
||||
#~ msgstr "Stier"
|
||||
|
||||
#~ msgid "Path to pure-ftpwho"
|
||||
#~ msgstr "Sti til pure-ftpwho"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Complete path to pure-ftpwho command which is used as backend to find all "
|
||||
#~ "active ftp connections."
|
||||
#~ msgstr ""
|
||||
#~ "Fuld sti til pure-ftpwho-kommandoen, der bruges til at finde alle aktive "
|
||||
#~ "ftp-tilslutninger."
|
||||
|
||||
#~ msgid "Path to ncftpd_spy"
|
||||
#~ msgstr "Sti til ncftpd_spy"
|
||||
|
||||
#~ msgid "Path to ftpwho"
|
||||
#~ msgstr "Sti til ftpwho"
|
||||
|
||||
#~ msgid "FTP Monitor"
|
||||
#~ msgstr "FTP Monitor"
|
||||
|
||||
#~ msgid "Nothing to Say"
|
||||
#~ msgstr "Ingenting at sige"
|
||||
|
||||
#~ msgid "About FTP Monitor"
|
||||
#~ msgstr "Om FTP Monitor"
|
||||
|
||||
#~ msgid "Help"
|
||||
#~ msgstr "Hjælp"
|
||||
|
||||
#~ msgid "Configure"
|
||||
#~ msgstr "Konfigurer"
|
||||
|
||||
#~ msgid "FTP Monitor - %1 connections"
|
||||
#~ msgstr "FTP Monitor - %1 tilslutninger"
|
||||
|
||||
#~ msgid "FTP Monitor - 1 connection"
|
||||
#~ msgstr "FTP Monitor - 1 tilslutning"
|
||||
|
||||
#~ msgid "FTP Monitor - No Connections"
|
||||
#~ msgstr "FTP Monitor - Ingen tilslutninger"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This is a small applet which monitors \\\t\t\t\tall incoming connections "
|
||||
#~ "to ftpd (pure-ftpd/ncftpd/vsftpd). \\\t\t\t\tIf some one connects or "
|
||||
#~ "disconnects it generates passive popups. \\\t\t\t\tAlso you can click on "
|
||||
#~ "it to find more info about active connections.\\\t\t\t\t\n"
|
||||
#~ "\n"
|
||||
#~ " For more help please visit \\\t\t\t\thttp://www.cse.iitb.ac.in/nilesh/"
|
||||
#~ "linux/ftpmonitor/ \\\t\t\t\t"
|
||||
#~ msgstr ""
|
||||
#~ "Dette er en lille applet, som overvåger \\\t\t\t\talle indgående "
|
||||
#~ "tilslutninger til ftpd (pure-ftpd/ncftpd/vsftpd). \\\t\t\t\tHvis en "
|
||||
#~ "tilslutning åbnes eller lukkes, genererer FTP Monitor passive popups. \\\t"
|
||||
#~ "\t\t\tDu kan også klikke på applet for at se information om de aktive "
|
||||
#~ "tilslutninger.\\\t\t\t\t\n"
|
||||
#~ "\n"
|
||||
#~ " For mere hjælp kan du besøge \\\t\t\t\thttp://www.cse.iitb.ac.in/nilesh/"
|
||||
#~ "linux/ftpmonitor/ \\\t\t\t\t"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Make sure that file %1 is setuid so that \\\t\t "
|
||||
#~ "non-root user can execute it"
|
||||
#~ msgstr ""
|
||||
#~ "Eftertjek at filen %1 er setuid root, således at \\\t"
|
||||
#~ "\t alm. brugere også kan eksekvere den."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "As ncftpd_spy can be executed by root only, make sure that either you "
|
||||
#~ "execute this applet as root or /etc/sudoers has following line \n"
|
||||
#~ "\n"
|
||||
#~ " username ALL=NOPASSWD: /usr/local/sbin/ncftpd_spy"
|
||||
#~ msgstr ""
|
||||
#~ "Idet ncftpd_spy kun kan eksekveres som root, skal du sikre dig, at denne "
|
||||
#~ "applet startes som root, eller at /etc/sudoers har følgende linje \n"
|
||||
#~ "\n"
|
||||
#~ " dit_brugernavn ALL=NOPASSWD: /sti/til/ncftpd_spy"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "vsftpd support is still experimental.\\\t\t\t\t\tAlso make sure that you "
|
||||
#~ "set \\\t\t\tproctitle_enable=YES in vsftpd.conf"
|
||||
#~ msgstr ""
|
||||
#~ "vsftpd-support er stadig eksperimentalt.\\\t\t\t\t\tDu skal i øvrigt "
|
||||
#~ "sikre dig, at \\\t\t\tproctitle_enable=YES er sat i vsftpd.conf"
|
||||
|
||||
#~ msgid " connections"
|
||||
#~ msgstr " tilslutninger"
|
||||
|
||||
#~ msgid " connection"
|
||||
#~ msgstr " tilslutning"
|
||||
|
||||
#~ msgid "Path to pure-ftpwho can't be empty."
|
||||
#~ msgstr "Stien til pure-ftpwho må ikke være tom."
|
||||
|
||||
#~ msgid "File %1 does not exist"
|
||||
#~ msgstr "Filen %1 eksisterer ikke"
|
||||
|
||||
#~ msgid "Error %1"
|
||||
#~ msgstr "Fejl %1"
|
||||
|
||||
#~ msgid "PID"
|
||||
#~ msgstr "PID"
|
||||
|
||||
#~ msgid "Login"
|
||||
#~ msgstr "Login"
|
||||
|
||||
#~ msgid "For/Speed"
|
||||
#~ msgstr "For/Hastighed"
|
||||
|
||||
#~ msgid "What"
|
||||
#~ msgstr "Hvad"
|
||||
|
||||
#~ msgid "File/IP"
|
||||
#~ msgstr "Fil/IP"
|
||||
|
||||
#~ msgid "No one is connected"
|
||||
#~ msgstr "Ingen tilslutninger"
|
||||
|
||||
#~ msgid "Client"
|
||||
#~ msgstr "Klient"
|
||||
|
||||
#~ msgid "Location"
|
||||
#~ msgstr "Lokation"
|
@ -0,0 +1,441 @@
|
||||
# translation of de.po to Deutsch
|
||||
# German translations for kompose package
|
||||
# German messages for kompose.
|
||||
# Copyright (C) 2004 THE kompose'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the kompose package.
|
||||
# Thomas Fischer <t-fisch@users.sourceforge.net>, 2004.
|
||||
# Thomas Fischer <thomas.fischer@t-fischer.net>, 2004, 2005.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: de\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-06-09 15:37+0200\n"
|
||||
"PO-Revision-Date: 2005-06-18 10:36+0200\n"
|
||||
"Last-Translator: Thomas Fischer <thomas.fischer@t-fischer.net>\n"
|
||||
"Language-Team: Deutsch <de@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: KBabel 1.9.1\n"
|
||||
|
||||
#: _translatorinfo.cpp:1
|
||||
msgid ""
|
||||
"_: NAME OF TRANSLATORS\n"
|
||||
"Your names"
|
||||
msgstr "Thomas Fischer"
|
||||
|
||||
#: _translatorinfo.cpp:3
|
||||
msgid ""
|
||||
"_: EMAIL OF TRANSLATORS\n"
|
||||
"Your emails"
|
||||
msgstr "t-fisch@users.sourceforge.net"
|
||||
|
||||
#: komposedesktopwidget.cpp:60
|
||||
msgid "Desktop %1 - %2"
|
||||
msgstr "Arbeitsfläche %1 - %2"
|
||||
|
||||
#: komposeglobal.cpp:158
|
||||
msgid "Komposé (ungrouped)"
|
||||
msgstr "Komposé (nicht gruppiert)"
|
||||
|
||||
#: komposeglobal.cpp:162
|
||||
msgid "Komposé (grouped by virtual desktops)"
|
||||
msgstr "Komposé (gruppiert in virtuellen Arbeitsflächen)"
|
||||
|
||||
#: komposeglobal.cpp:166
|
||||
msgid "Komposé (current virtual desktop)"
|
||||
msgstr "Komposé (aktuelle virtuelle Arbeitsfläche)"
|
||||
|
||||
#: komposeglobal.cpp:175
|
||||
msgid "Configure &Global Shortcuts..."
|
||||
msgstr "&Globale Kurzbefehle einrichten..."
|
||||
|
||||
#: komposeglobal.cpp:176
|
||||
msgid "About Komposé"
|
||||
msgstr "Über Komposé"
|
||||
|
||||
#: komposepreferences.cpp:38
|
||||
msgid "Komposé Preferences"
|
||||
msgstr "Einrichten - Komposé"
|
||||
|
||||
#: komposepreferences.cpp:44
|
||||
msgid "Behavior"
|
||||
msgstr "Verhalten"
|
||||
|
||||
#: komposepreferences.cpp:46
|
||||
msgid "Layouts"
|
||||
msgstr "Anordnung"
|
||||
|
||||
#: komposepreferences.cpp:50
|
||||
msgid "Default Layout"
|
||||
msgstr "Standardanordnung"
|
||||
|
||||
#: komposepreferences.cpp:52
|
||||
msgid ""
|
||||
"Determines which view should be started by default (e.g. when you click on "
|
||||
"the systray icon)."
|
||||
msgstr ""
|
||||
"Legt fest, welche Ansicht als Standard verwendet wird, wenn z.B. auf das "
|
||||
"Symbol in der Kontrollleiste geklickt wird."
|
||||
|
||||
#: komposepreferences.cpp:55
|
||||
msgid "Ungrouped"
|
||||
msgstr "Nicht gruppiert"
|
||||
|
||||
#: komposepreferences.cpp:56
|
||||
msgid "Fullscreen layout that shows all windows in no specific order"
|
||||
msgstr "Vollbildanordnung, die alle Fenster ohne besondere Reihenfolge zeigt"
|
||||
|
||||
#: komposepreferences.cpp:59
|
||||
msgid "Grouped by virtual desktops"
|
||||
msgstr "Gruppiert nach virtuellen Arbeitsflächen"
|
||||
|
||||
#: komposepreferences.cpp:60
|
||||
msgid ""
|
||||
"Fullscreen layout that shows a representation of your virtual desktops\n"
|
||||
" and places the windows inside."
|
||||
msgstr ""
|
||||
"Vollbildanordnung, die die virtuellen Arbeitsflächen und die darin "
|
||||
"enthaltenen Fenster zeigt."
|
||||
|
||||
#: komposepreferences.cpp:63
|
||||
msgid "Current virtual desktop"
|
||||
msgstr "Aktuelle virtuelle Arbeitsfläche"
|
||||
|
||||
#: komposepreferences.cpp:64
|
||||
msgid ""
|
||||
"Fullscreen layout that shows the windows of the desktop you're currently "
|
||||
"working on."
|
||||
msgstr ""
|
||||
"Vollbildanordnung, die die Fenster der aktuellen virtuellen Arbeitsfläche "
|
||||
"zeigt."
|
||||
|
||||
#: komposepreferences.cpp:71
|
||||
msgid "Xinerama"
|
||||
msgstr "Xinerama"
|
||||
|
||||
#: komposepreferences.cpp:74
|
||||
msgid "Use the whole desktop for Komposé"
|
||||
msgstr "Die gesamte Arbeitsfläche für Komposé verwenden"
|
||||
|
||||
#: komposepreferences.cpp:77
|
||||
msgid "Use screen:"
|
||||
msgstr "Bildschirm benutzen:"
|
||||
|
||||
#: komposepreferences.cpp:81
|
||||
msgid "Specify the screen where Komposé should appear."
|
||||
msgstr "Bestimmt den Bildschirm, auf dem Komposé erscheinen wird."
|
||||
|
||||
#: komposepreferences.cpp:91 komposepreferences.cpp:99
|
||||
msgid "Screenshots"
|
||||
msgstr "Bildschirmphoto"
|
||||
|
||||
#: komposepreferences.cpp:93
|
||||
msgid "Use XComposite if available"
|
||||
msgstr "XComposite verwenden falls verfügbar"
|
||||
|
||||
#: komposepreferences.cpp:94
|
||||
msgid ""
|
||||
"Making use of the Composite extension of newer X Servers makes the grabbing "
|
||||
"of screenshots obsolete.\n"
|
||||
"The contents of all windows are drawn in back buffers that will be accessed "
|
||||
"by Komposé\n"
|
||||
"Note that the Composite implementation of even modern graphic card drivers "
|
||||
"is still very slow and may make your system pretty unusable."
|
||||
msgstr ""
|
||||
"Mit der Composite-Erweiterung moderner X-Server kann auf das herkömmliche "
|
||||
"Einfangen des Bildschirms verzichtet werden.\n"
|
||||
"Der Inhalt aller Fenster wird in verborgenen Puffern gezeichnet, auf die "
|
||||
"Komposé zugreift.\n"
|
||||
"Die Composite-Implementierung ist selbst bei aktuellen Treibern oft langsam "
|
||||
"und macht das System instabil."
|
||||
|
||||
#: komposepreferences.cpp:102
|
||||
msgid "Passive screenshots"
|
||||
msgstr "Passive Bildschirmphotos"
|
||||
|
||||
#: komposepreferences.cpp:103
|
||||
msgid ""
|
||||
"Create a screenshot whenever you raise or active a window.\n"
|
||||
"When selected the amount the annoying popup-effect before every Komposé "
|
||||
"activation will be minimized to nearly zero.\n"
|
||||
"The drawback is that the screenshots are not so recent and may not display "
|
||||
"the actual content."
|
||||
msgstr ""
|
||||
"Erstellt ein Bildschirmfoto, wann immer ein Fenster gehoben oder aktiviert "
|
||||
"wird.\n"
|
||||
"Wenn diese Option aktiviert ist, wird das störende Bildschirmflackern vor "
|
||||
"jeder Komposé-Aktivierung minimiert.\n"
|
||||
"Ein Nachteil dabei ist, daß die Bildschirmfotos nicht immer aktuell sind und "
|
||||
"eventuell nicht den gegenwärtigen Inhalt darstellen."
|
||||
|
||||
#: komposepreferences.cpp:108
|
||||
msgid "Delay between screenshots (ms):"
|
||||
msgstr "Verzögerung zwischen Bildschirmfotos (ms):"
|
||||
|
||||
#: komposepreferences.cpp:111
|
||||
msgid ""
|
||||
"Specifies the time to wait between the activation of a window and the "
|
||||
"screenshot taking.\n"
|
||||
"Increase it when your windows need more time to draw themselves after "
|
||||
"activation.\n"
|
||||
"Values below 300ms are not recommended, but may work in some cases."
|
||||
msgstr ""
|
||||
"Bestimmt die Zeit, die gewartet wird zwischen der Aktivierung eines Fensters "
|
||||
"und des Aufnehmens eines Bildschirmfotos von diesem Fenster.\n"
|
||||
"Falls ein Fenster mehr Zeit braucht, um sich neu zu zeichnen, sollte dieser "
|
||||
"Wert erhöht werden.\n"
|
||||
"Werte unter 300 ms sind nicht empfehlenswert, auch wenn sie in bestimmten "
|
||||
"Fällen funktionieren."
|
||||
|
||||
#: komposepreferences.cpp:117
|
||||
msgid "Cache scaled Screenshots"
|
||||
msgstr "Skalierte Bildschirmphotos zwischenspeichern"
|
||||
|
||||
#: komposepreferences.cpp:118
|
||||
msgid ""
|
||||
"This may avoid some scaling operations to be called repeatedly when Komposé "
|
||||
"has been displayed before and the screenshot's size didn't change.\n"
|
||||
"It will however increase memory usage quite a bit."
|
||||
msgstr ""
|
||||
"Verhindert wiederholte Skalierungsoperationen, wenn Komposé Bildschirmfotos "
|
||||
"anzeigt, deren Inhalt sich seit dem letzten Komposé-Aufruf nicht geändert "
|
||||
"hat.\n"
|
||||
"Dadurch wird aber auch der Speicherverbrauch etwas erhöht."
|
||||
|
||||
#: komposepreferences.cpp:126
|
||||
msgid "Autoactivate when mouse moves into"
|
||||
msgstr "Automatisch aktivieren, wenn die Maus hier hin bewegt wird"
|
||||
|
||||
#: komposepreferences.cpp:128
|
||||
msgid "Top-left corner"
|
||||
msgstr "Obere linke Ecke"
|
||||
|
||||
#: komposepreferences.cpp:130
|
||||
msgid "Top-right corner"
|
||||
msgstr "Obere rechte Ecke"
|
||||
|
||||
#: komposepreferences.cpp:132
|
||||
msgid "Bottom-left corner"
|
||||
msgstr "Untere linke Ecke"
|
||||
|
||||
#: komposepreferences.cpp:134
|
||||
msgid "Bottom-right corner"
|
||||
msgstr "Untere rechte Ecke"
|
||||
|
||||
#: komposepreferences.cpp:137
|
||||
msgid "Top edge"
|
||||
msgstr "Oberer Rand"
|
||||
|
||||
#: komposepreferences.cpp:139
|
||||
msgid "Bottom edge"
|
||||
msgstr "Unterer Rand"
|
||||
|
||||
#: komposepreferences.cpp:141
|
||||
msgid "Left edge"
|
||||
msgstr "Linker Rand"
|
||||
|
||||
#: komposepreferences.cpp:143
|
||||
msgid "Right edge"
|
||||
msgstr "Rechter Rand"
|
||||
|
||||
#: komposepreferences.cpp:147
|
||||
msgid "Delay until activation (ms):"
|
||||
msgstr "Verzögerung bis Aktivierung (ms):"
|
||||
|
||||
#: komposepreferences.cpp:150
|
||||
msgid ""
|
||||
"Specifies the time in ms for which the mouse pointer must rest in the corner "
|
||||
"until auto-activation."
|
||||
msgstr ""
|
||||
"Gibt die Zeit in Millisekunden an, für die der Mauszeiger in der Ecke "
|
||||
"verweilen muss, damit Komposé aktiviert wird."
|
||||
|
||||
#: komposepreferences.cpp:165
|
||||
msgid "Enable image effects"
|
||||
msgstr "Bildeffekte verwenden"
|
||||
|
||||
#: komposepreferences.cpp:166
|
||||
msgid ""
|
||||
"Lighten windows when the mouse moves over it or gray out minimized windows.\n"
|
||||
"Depending on your system specs this can be a bit slower."
|
||||
msgstr ""
|
||||
"Fenster werden aufgehellt, wenn die Maus über sie fährt und angegraut, wenn "
|
||||
"sie minimiert sind.\n"
|
||||
"Diese Option kann das System verlangsamen."
|
||||
|
||||
#: komposepreferences.cpp:171
|
||||
msgid "Show Desktop number on Systray icon"
|
||||
msgstr "Nummer der Arbeitsfläche im Symbol in der Kontrollleiste anzeigen"
|
||||
|
||||
#: komposepreferences.cpp:172
|
||||
msgid ""
|
||||
"Displays the number of the currently active Desktop on the Komposé systray "
|
||||
"icon."
|
||||
msgstr "Zeigt die Nummer des aktuell aktiven Arbeitsfläche im Komposé-Symbol in der Kontrollleiste."
|
||||
|
||||
#: komposepreferences.cpp:177
|
||||
msgid "Window Titles"
|
||||
msgstr "Fenstertitel"
|
||||
|
||||
#: komposepreferences.cpp:180
|
||||
msgid "Show window titles"
|
||||
msgstr "Fenstertitel anzeigen"
|
||||
|
||||
#: komposepreferences.cpp:181
|
||||
msgid "Select Font..."
|
||||
msgstr "Schrift auswählen..."
|
||||
|
||||
#: komposepreferences.cpp:182
|
||||
msgid "Display the name of every window in Komposé"
|
||||
msgstr "Den Namen von jedem Fenster in Komposé anzeigen"
|
||||
|
||||
#: komposepreferences.cpp:190
|
||||
msgid "Text color:"
|
||||
msgstr "Textfarbe:"
|
||||
|
||||
#: komposepreferences.cpp:194
|
||||
msgid "Shadow color:"
|
||||
msgstr "Schattenfarbe:"
|
||||
|
||||
#: komposepreferences.cpp:204
|
||||
msgid "Task Icons"
|
||||
msgstr "Fenstersymbole"
|
||||
|
||||
#: komposepreferences.cpp:205
|
||||
msgid "Show icons"
|
||||
msgstr "Symbole anzeigen"
|
||||
|
||||
#: komposepreferences.cpp:220
|
||||
msgid "Grouped by Virtual Desktops"
|
||||
msgstr "Gruppiert nach virtuellen Arbeitsflächen"
|
||||
|
||||
#: komposepreferences.cpp:221
|
||||
msgid "Layout empty virtual desktops minimized"
|
||||
msgstr "Leere virtuelle Arbeitsflächen verkleinert darstellen"
|
||||
|
||||
#: komposepreferences.cpp:222
|
||||
msgid ""
|
||||
"Check this if you want empty virtual desktops to take less space on the "
|
||||
"screen.\n"
|
||||
"Uncheck it if you want them to be arranged statically, each of the same size."
|
||||
msgstr ""
|
||||
"Mit dieser Option benötigen leere virtuelle Arbeitsflächen weniger Platz am "
|
||||
"Bildschirm.\n"
|
||||
"Ohne diese Option wird jeder virtuellen Arbeitsfläche statisch ein "
|
||||
"gleichgroßer Platz zugeordnet."
|
||||
|
||||
#: komposepreferences.cpp:228
|
||||
msgid "Desktop frame color:"
|
||||
msgstr "Rahmenfarbe für Arbeitsflächen:"
|
||||
|
||||
#: komposepreferences.cpp:230
|
||||
msgid "Desktop frame highlight color:"
|
||||
msgstr "Rahmenfarbe für hervorgehobene Arbeitsflächen:"
|
||||
|
||||
#: komposepreferences.cpp:235
|
||||
msgid "Select Desktop Names Font..."
|
||||
msgstr "Schrift für Arbeitsflächenbeschriftungen auswählen..."
|
||||
|
||||
#: komposepreferences.cpp:253
|
||||
msgid "16x16"
|
||||
msgstr "16x16"
|
||||
|
||||
#: komposepreferences.cpp:256
|
||||
msgid "32x32"
|
||||
msgstr "32x32"
|
||||
|
||||
#: komposepreferences.cpp:259
|
||||
msgid "64x64"
|
||||
msgstr "64x64"
|
||||
|
||||
#: komposepreferences.cpp:262
|
||||
msgid "Don't scale, show as they are (preferably bigger)"
|
||||
msgstr "Nicht skalieren, sondern Original (vorzugsweise größer) zeigen"
|
||||
|
||||
#: komposesettings.cpp:52
|
||||
msgid "Show Komposé (default view)"
|
||||
msgstr "Komposé anzeigen (Standardansicht)"
|
||||
|
||||
#: komposesettings.cpp:53
|
||||
msgid "Displays the view you have configured as default"
|
||||
msgstr "Anzeigen wie als Standard eingerichtet"
|
||||
|
||||
#: komposesettings.cpp:56
|
||||
msgid "Show Komposé (ungrouped)"
|
||||
msgstr "Komposé anzeigen (nicht gruppiert)"
|
||||
|
||||
#: komposesettings.cpp:57
|
||||
msgid "Displays all windows unsorted"
|
||||
msgstr "Alle Fenster unsortiert anzeigen"
|
||||
|
||||
#: komposesettings.cpp:60
|
||||
msgid "Show Komposé (grouped by virtual desktops)"
|
||||
msgstr "Komposé anzeigen (gruppiert nach virtuellen Arbeitsflächen)"
|
||||
|
||||
#: komposesettings.cpp:61
|
||||
msgid "Displays all windows sorted by virtual desktops"
|
||||
msgstr "Alle Fenster sortiert nach virtuellen Arbeitsflächen anzeigen"
|
||||
|
||||
#: komposesettings.cpp:64
|
||||
msgid "Show Komposé (current virtual desktop)"
|
||||
msgstr "Komposé anzeigen (aktuelle virtuelle Arbeitsfläche)"
|
||||
|
||||
#: komposesettings.cpp:65
|
||||
msgid "Displays all windows on the current desktop"
|
||||
msgstr "Alle Fenster der aktuellen Arbeitsfläche anzeigen"
|
||||
|
||||
#: komposetask.cpp:153
|
||||
msgid "modified"
|
||||
msgstr "verändert"
|
||||
|
||||
#: komposetaskprefswidget.cpp:31
|
||||
msgid "Task Actions"
|
||||
msgstr "Fensteraktionen"
|
||||
|
||||
#: komposetaskprefswidget.cpp:32
|
||||
msgid "Task"
|
||||
msgstr "Fenster"
|
||||
|
||||
#: komposetaskwidget.cpp:353
|
||||
msgid "Minimize/Restore"
|
||||
msgstr "Verkleinern/Wiederherstellen"
|
||||
|
||||
#: komposetaskwidget.cpp:367
|
||||
msgid "&All Desktops"
|
||||
msgstr "&Alle Arbeitsflächen"
|
||||
|
||||
#: komposetaskwidget.cpp:380
|
||||
msgid "To &Desktop"
|
||||
msgstr "Auf &Arbeitsfläche"
|
||||
|
||||
#: main.cpp:32
|
||||
msgid "A fullscreen task manager for KDE"
|
||||
msgstr "Ein Vollbild-Fensterwechsler für KDE"
|
||||
|
||||
#: main.cpp:38
|
||||
msgid "Do not show the systray icon"
|
||||
msgstr "Symbol nicht in Kontrollleiste zeigen"
|
||||
|
||||
#: main.cpp:39
|
||||
msgid "Display the default view and exit (non daemon mode)"
|
||||
msgstr "Standardansicht zeigen und beenden (Nicht-Dämon-Modus)"
|
||||
|
||||
#: main.cpp:64
|
||||
msgid "Kompose"
|
||||
msgstr "Kompose"
|
||||
|
||||
#: rc.cpp:3
|
||||
#, no-c-format
|
||||
msgid "C&ustom"
|
||||
msgstr "&Benutzerdefiniert"
|
||||
|
||||
#~ msgid "Tint virtual desktop widgets:"
|
||||
#~ msgstr "Rahmen für virtuelle Arbeitsflächen einfärben:"
|
||||
|
||||
#~ msgid "Colorize the transparent background of the virtual desktop widgets"
|
||||
#~ msgstr ""
|
||||
#~ "Den transparenten Hintergrund de virtuellen Arbeitsflächen eingfärben"
|
||||
|
@ -0,0 +1,442 @@
|
||||
# Translation of Kompose to Castilian aka Spanish
|
||||
# This file is distributed under the same license as the Kompose package.
|
||||
# Copyright (C) 2004 Hans Oischinger <oisch@sourceforge.net>
|
||||
# Enrique Matias Sanchez (aka Quique) <cronopios@gmail.com>, 2004, 2005.
|
||||
# Jordi Ferre Soldevila (aka univac) <univac@vired.com>, 2005.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: es\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-06-09 15:37+0200\n"
|
||||
"PO-Revision-Date: 2005-03-18 10:20+0100\n"
|
||||
"Last-Translator: Enrique Matias Sanchez <cronopios@gmail.com>\n"
|
||||
"Language-Team: Castilian aka Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"es>\n"
|
||||
"X-Generator: KBabel 1.9.1\n"
|
||||
|
||||
#: _translatorinfo.cpp:1
|
||||
msgid ""
|
||||
"_: NAME OF TRANSLATORS\n"
|
||||
"Your names"
|
||||
msgstr "Enrique Matías Sánchez (Quique),Jordi Ferré Soldevila (univac)"
|
||||
|
||||
#: _translatorinfo.cpp:3
|
||||
msgid ""
|
||||
"_: EMAIL OF TRANSLATORS\n"
|
||||
"Your emails"
|
||||
msgstr "cronopios@gmail.com,univac@vired.com"
|
||||
|
||||
#: komposedesktopwidget.cpp:60
|
||||
msgid "Desktop %1 - %2"
|
||||
msgstr "Escritorio %1 - %2"
|
||||
|
||||
#: komposeglobal.cpp:158
|
||||
msgid "Komposé (ungrouped)"
|
||||
msgstr "Komposé (vista desagrupada)"
|
||||
|
||||
#: komposeglobal.cpp:162
|
||||
msgid "Komposé (grouped by virtual desktops)"
|
||||
msgstr "Komposé (vista agrupada por escritorios virtuales)"
|
||||
|
||||
#: komposeglobal.cpp:166
|
||||
msgid "Komposé (current virtual desktop)"
|
||||
msgstr "Komposé (escritorio virtual actual)"
|
||||
|
||||
#: komposeglobal.cpp:175
|
||||
msgid "Configure &Global Shortcuts..."
|
||||
msgstr "Configurar los atajos &globales..."
|
||||
|
||||
#: komposeglobal.cpp:176
|
||||
msgid "About Komposé"
|
||||
msgstr "Acerca de Komposé"
|
||||
|
||||
#: komposepreferences.cpp:38
|
||||
msgid "Komposé Preferences"
|
||||
msgstr "Preferencias de Komposé"
|
||||
|
||||
#: komposepreferences.cpp:44
|
||||
msgid "Behavior"
|
||||
msgstr "Comportamiento"
|
||||
|
||||
#: komposepreferences.cpp:46
|
||||
msgid "Layouts"
|
||||
msgstr "Disposiciones"
|
||||
|
||||
#: komposepreferences.cpp:50
|
||||
msgid "Default Layout"
|
||||
msgstr "Disposición predeterminada"
|
||||
|
||||
#: komposepreferences.cpp:52
|
||||
msgid ""
|
||||
"Determines which view should be started by default (e.g. when you click on "
|
||||
"the systray icon)."
|
||||
msgstr ""
|
||||
"Determina que vista se iniciará por omisión (por ejemplo cuando pulse sobre "
|
||||
"el icono de la bandeja del sistema)"
|
||||
|
||||
#: komposepreferences.cpp:55
|
||||
msgid "Ungrouped"
|
||||
msgstr "Desagrupada"
|
||||
|
||||
#: komposepreferences.cpp:56
|
||||
msgid "Fullscreen layout that shows all windows in no specific order"
|
||||
msgstr ""
|
||||
"Disposición a pantalla completa que muestra todas las ventanas sin ningún "
|
||||
"orden en particular"
|
||||
|
||||
#: komposepreferences.cpp:59
|
||||
msgid "Grouped by virtual desktops"
|
||||
msgstr "Agrupada por escritorios virtuales"
|
||||
|
||||
#: komposepreferences.cpp:60
|
||||
msgid ""
|
||||
"Fullscreen layout that shows a representation of your virtual desktops\n"
|
||||
" and places the windows inside."
|
||||
msgstr ""
|
||||
"Disposición a pantalla completa que muestra una representación\n"
|
||||
"de sus escritorios virtuales y coloca las ventanas en su interior."
|
||||
|
||||
#: komposepreferences.cpp:63
|
||||
msgid "Current virtual desktop"
|
||||
msgstr "Escritorio virtual actual"
|
||||
|
||||
#: komposepreferences.cpp:64
|
||||
msgid ""
|
||||
"Fullscreen layout that shows the windows of the desktop you're currently "
|
||||
"working on."
|
||||
msgstr ""
|
||||
"Disposición a pantalla completa que las ventanas del escritorio en el que "
|
||||
"está trabajando actualmente."
|
||||
|
||||
#: komposepreferences.cpp:71
|
||||
msgid "Xinerama"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:74
|
||||
msgid "Use the whole desktop for Komposé"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:77
|
||||
#, fuzzy
|
||||
msgid "Use screen:"
|
||||
msgstr "Capturas de pantalla pasivas"
|
||||
|
||||
#: komposepreferences.cpp:81
|
||||
msgid "Specify the screen where Komposé should appear."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:91 komposepreferences.cpp:99
|
||||
msgid "Screenshots"
|
||||
msgstr "Capturas de pantalla"
|
||||
|
||||
#: komposepreferences.cpp:93
|
||||
msgid "Use XComposite if available"
|
||||
msgstr "Usar XComposite si está disponible"
|
||||
|
||||
#: komposepreferences.cpp:94
|
||||
msgid ""
|
||||
"Making use of the Composite extension of newer X Servers makes the grabbing "
|
||||
"of screenshots obsolete.\n"
|
||||
"The contents of all windows are drawn in back buffers that will be accessed "
|
||||
"by Komposé\n"
|
||||
"Note that the Composite implementation of even modern graphic card drivers "
|
||||
"is still very slow and may make your system pretty unusable."
|
||||
msgstr ""
|
||||
"El uso de la extensión Composite de los servidores X más recientes vuelve "
|
||||
"obsoleta la toma de capturas de pantalla.\n"
|
||||
"El contenido de todas las ventanas se dibuja en búferes en segundo plano "
|
||||
"accesibles para Komposé\n"
|
||||
"Observe que la implementación de Composite de los controladores de las "
|
||||
"tarjetas gráficas -incluso las modernas- es aún muy lento y puede hacer que "
|
||||
"sus sistema sea bastante inusable."
|
||||
|
||||
#: komposepreferences.cpp:102
|
||||
msgid "Passive screenshots"
|
||||
msgstr "Capturas de pantalla pasivas"
|
||||
|
||||
#: komposepreferences.cpp:103
|
||||
msgid ""
|
||||
"Create a screenshot whenever you raise or active a window.\n"
|
||||
"When selected the amount the annoying popup-effect before every Komposé "
|
||||
"activation will be minimized to nearly zero.\n"
|
||||
"The drawback is that the screenshots are not so recent and may not display "
|
||||
"the actual content."
|
||||
msgstr ""
|
||||
"Crea una captura de pantalla cada vez que levanta o activa una ventana.\n"
|
||||
"Cuando esta opción está seleccionada, se minimizará a casi cero la cantidad "
|
||||
"del molesto efecto de ventanas emergentes de cada activación de Komposé.\n"
|
||||
"La contrapartida es que las caputras de pantalla no son tan recientes y "
|
||||
"pueden no mostrar el contenido actual."
|
||||
|
||||
#: komposepreferences.cpp:108
|
||||
msgid "Delay between screenshots (ms):"
|
||||
msgstr "Demora entre las capturas de pantalla (ms):"
|
||||
|
||||
#: komposepreferences.cpp:111
|
||||
msgid ""
|
||||
"Specifies the time to wait between the activation of a window and the "
|
||||
"screenshot taking.\n"
|
||||
"Increase it when your windows need more time to draw themselves after "
|
||||
"activation.\n"
|
||||
"Values below 300ms are not recommended, but may work in some cases."
|
||||
msgstr ""
|
||||
"Indica el tiempo a esperar entre la activación de una ventana y la captura "
|
||||
"de la pantalla.\n"
|
||||
"Auméntelo cuando sus ventanas necesiten más tiempo para dibujarse tras la "
|
||||
"activación.\n"
|
||||
"No se recomiendan los valores por debajo de 300 ms, pero pueden funcionar en "
|
||||
"algunos casos."
|
||||
|
||||
#: komposepreferences.cpp:117
|
||||
msgid "Cache scaled Screenshots"
|
||||
msgstr "Guardar en caché capturas de pantalla redimensionadas"
|
||||
|
||||
#: komposepreferences.cpp:118
|
||||
msgid ""
|
||||
"This may avoid some scaling operations to be called repeatedly when Komposé "
|
||||
"has been displayed before and the screenshot's size didn't change.\n"
|
||||
"It will however increase memory usage quite a bit."
|
||||
msgstr ""
|
||||
"Este permite evitar que se llame repetidamente a algunas operaciones de "
|
||||
"escalado cuando Komposé ya ha sido mostrado antes y no ha cambiado el tamaño "
|
||||
"de la captura de pantalla.\n"
|
||||
"Sin embargo, aumentará bastante el consumo de memoria."
|
||||
|
||||
#: komposepreferences.cpp:126
|
||||
msgid "Autoactivate when mouse moves into"
|
||||
msgstr "Activar automáticamente cuando el ratón sea colocado sobre"
|
||||
|
||||
#: komposepreferences.cpp:128
|
||||
msgid "Top-left corner"
|
||||
msgstr "Esquina superior izquierda"
|
||||
|
||||
#: komposepreferences.cpp:130
|
||||
msgid "Top-right corner"
|
||||
msgstr "Esquina superior derecha"
|
||||
|
||||
#: komposepreferences.cpp:132
|
||||
msgid "Bottom-left corner"
|
||||
msgstr "Esquina inferior izquierda"
|
||||
|
||||
#: komposepreferences.cpp:134
|
||||
msgid "Bottom-right corner"
|
||||
msgstr "Esquina inferior derecha"
|
||||
|
||||
#: komposepreferences.cpp:137
|
||||
msgid "Top edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:139
|
||||
msgid "Bottom edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:141
|
||||
msgid "Left edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:143
|
||||
msgid "Right edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:147
|
||||
msgid "Delay until activation (ms):"
|
||||
msgstr "Demora hasta la activación (ms):"
|
||||
|
||||
#: komposepreferences.cpp:150
|
||||
msgid ""
|
||||
"Specifies the time in ms for which the mouse pointer must rest in the corner "
|
||||
"until auto-activation."
|
||||
msgstr ""
|
||||
"Indica el tiempo en ms que el puntero del ratón debe permanecer en la "
|
||||
"esquina para la activación automática."
|
||||
|
||||
#: komposepreferences.cpp:165
|
||||
msgid "Enable image effects"
|
||||
msgstr "Habilitar los efectos de imágenes"
|
||||
|
||||
#: komposepreferences.cpp:166
|
||||
msgid ""
|
||||
"Lighten windows when the mouse moves over it or gray out minimized windows.\n"
|
||||
"Depending on your system specs this can be a bit slower."
|
||||
msgstr ""
|
||||
"Ilumina las ventanas cuando el ratón pasa sobre ellas o colorea de gris las "
|
||||
"ventanas minimizadas.\n"
|
||||
"Dependiendo de las especificaciones de su sistema esto puede ser un poco "
|
||||
"lento."
|
||||
|
||||
#: komposepreferences.cpp:171
|
||||
msgid "Show Desktop number on Systray icon"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:172
|
||||
msgid ""
|
||||
"Displays the number of the currently active Desktop on the Komposé systray "
|
||||
"icon."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:177
|
||||
msgid "Window Titles"
|
||||
msgstr "Títulos de las ventanas"
|
||||
|
||||
#: komposepreferences.cpp:180
|
||||
msgid "Show window titles"
|
||||
msgstr "Muestra los títulos de las ventanas"
|
||||
|
||||
#: komposepreferences.cpp:181
|
||||
msgid "Select Font..."
|
||||
msgstr "Seleccionar el tipo de letra..."
|
||||
|
||||
#: komposepreferences.cpp:182
|
||||
msgid "Display the name of every window in Komposé"
|
||||
msgstr "Mostrar el nombre de todas las ventanas de Komposé"
|
||||
|
||||
#: komposepreferences.cpp:190
|
||||
msgid "Text color:"
|
||||
msgstr "Color del texto:"
|
||||
|
||||
#: komposepreferences.cpp:194
|
||||
msgid "Shadow color:"
|
||||
msgstr "Color de la sombra:"
|
||||
|
||||
#: komposepreferences.cpp:204
|
||||
msgid "Task Icons"
|
||||
msgstr "Iconos de las tareas"
|
||||
|
||||
#: komposepreferences.cpp:205
|
||||
msgid "Show icons"
|
||||
msgstr "Mostrar los iconos"
|
||||
|
||||
#: komposepreferences.cpp:220
|
||||
msgid "Grouped by Virtual Desktops"
|
||||
msgstr "Agrupadas por escritorios virtuales"
|
||||
|
||||
#: komposepreferences.cpp:221
|
||||
msgid "Layout empty virtual desktops minimized"
|
||||
msgstr "Mostrar minimizados los escritorios virtuales vacíos"
|
||||
|
||||
#: komposepreferences.cpp:222
|
||||
msgid ""
|
||||
"Check this if you want empty virtual desktops to take less space on the "
|
||||
"screen.\n"
|
||||
"Uncheck it if you want them to be arranged statically, each of the same size."
|
||||
msgstr ""
|
||||
"Marque esto si desea que los escritorios virtuales vacíos ocupen menos "
|
||||
"espacio en la pantalla.\n"
|
||||
"Desmárquelo si desea que se organicen estáticamente, todos del mismo tamaño."
|
||||
|
||||
#: komposepreferences.cpp:228
|
||||
msgid "Desktop frame color:"
|
||||
msgstr "Color del marco de los escritorios:"
|
||||
|
||||
#: komposepreferences.cpp:230
|
||||
msgid "Desktop frame highlight color:"
|
||||
msgstr "Color de realce del marco de los escritorios:"
|
||||
|
||||
#: komposepreferences.cpp:235
|
||||
msgid "Select Desktop Names Font..."
|
||||
msgstr "Seleccionar el tipo de letra para los nombres de los escritorios..."
|
||||
|
||||
#: komposepreferences.cpp:253
|
||||
msgid "16x16"
|
||||
msgstr "16x16"
|
||||
|
||||
#: komposepreferences.cpp:256
|
||||
msgid "32x32"
|
||||
msgstr "32x32"
|
||||
|
||||
#: komposepreferences.cpp:259
|
||||
msgid "64x64"
|
||||
msgstr "64x64"
|
||||
|
||||
#: komposepreferences.cpp:262
|
||||
msgid "Don't scale, show as they are (preferably bigger)"
|
||||
msgstr "No escalar, mostrarlos tal como son (preferiblemente más grande)"
|
||||
|
||||
#: komposesettings.cpp:52
|
||||
msgid "Show Komposé (default view)"
|
||||
msgstr "Mostrar Komposé (vista predeterminada)"
|
||||
|
||||
#: komposesettings.cpp:53
|
||||
msgid "Displays the view you have configured as default"
|
||||
msgstr "Muestra la vista que haya configurado como predeterminada."
|
||||
|
||||
#: komposesettings.cpp:56
|
||||
msgid "Show Komposé (ungrouped)"
|
||||
msgstr "Mostrar Komposé (vista desagrupada)"
|
||||
|
||||
#: komposesettings.cpp:57
|
||||
msgid "Displays all windows unsorted"
|
||||
msgstr "Muestra todas las ventanas sin ordenarlas"
|
||||
|
||||
#: komposesettings.cpp:60
|
||||
msgid "Show Komposé (grouped by virtual desktops)"
|
||||
msgstr "Mostrar Komposé (vista agrupada por escritorios virtuales)"
|
||||
|
||||
#: komposesettings.cpp:61
|
||||
msgid "Displays all windows sorted by virtual desktops"
|
||||
msgstr "Muestra todas las ventanas agrupadas por escritorios virtuales"
|
||||
|
||||
#: komposesettings.cpp:64
|
||||
msgid "Show Komposé (current virtual desktop)"
|
||||
msgstr "Mostrar Komposé (escritorio virtual actual)"
|
||||
|
||||
#: komposesettings.cpp:65
|
||||
msgid "Displays all windows on the current desktop"
|
||||
msgstr "Muestra todas las ventanas del escritorio actual"
|
||||
|
||||
#: komposetask.cpp:153
|
||||
msgid "modified"
|
||||
msgstr "modificado"
|
||||
|
||||
#: komposetaskprefswidget.cpp:31
|
||||
msgid "Task Actions"
|
||||
msgstr "Acciones de las tareas"
|
||||
|
||||
#: komposetaskprefswidget.cpp:32
|
||||
msgid "Task"
|
||||
msgstr "Tarea"
|
||||
|
||||
#: komposetaskwidget.cpp:353
|
||||
msgid "Minimize/Restore"
|
||||
msgstr "Minimizar/Restaurar"
|
||||
|
||||
#: komposetaskwidget.cpp:367
|
||||
msgid "&All Desktops"
|
||||
msgstr "&Todos los escritorios"
|
||||
|
||||
#: komposetaskwidget.cpp:380
|
||||
msgid "To &Desktop"
|
||||
msgstr "Al &escritorio"
|
||||
|
||||
#: main.cpp:32
|
||||
msgid "A fullscreen task manager for KDE"
|
||||
msgstr "Un gestor de tareas a pantalla completa para KDE"
|
||||
|
||||
#: main.cpp:38
|
||||
msgid "Do not show the systray icon"
|
||||
msgstr "No mostrar el icono en la bandeja del sistema"
|
||||
|
||||
#: main.cpp:39
|
||||
msgid "Display the default view and exit (non daemon mode)"
|
||||
msgstr "Mostrar la vista predeterminada y salir (modo sin demonio)"
|
||||
|
||||
#: main.cpp:64
|
||||
msgid "Kompose"
|
||||
msgstr "Komposé"
|
||||
|
||||
#: rc.cpp:3
|
||||
#, no-c-format
|
||||
msgid "C&ustom"
|
||||
msgstr "&Personalizado"
|
||||
|
||||
#~ msgid "Tint virtual desktop widgets:"
|
||||
#~ msgstr "Tintar los recuadros de los escritorios virtuales:"
|
||||
|
||||
#~ msgid "Colorize the transparent background of the virtual desktop widgets"
|
||||
#~ msgstr ""
|
||||
#~ "Colorear el fondo transparente de los recuadros de los escritorios "
|
||||
#~ "virtuales"
|
@ -0,0 +1,440 @@
|
||||
# translation of kompose.pot to Italiano
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
|
||||
# Giorgio Moscardi <enjoy.the.silence@iol.it>, 2004.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kompose\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-06-09 15:37+0200\n"
|
||||
"PO-Revision-Date: 2004-10-12 16:51+0200\n"
|
||||
"Last-Translator: Giorgio Moscardi <enjoy.the.silence@iol.it>\n"
|
||||
"Language-Team: Italiano <kde-i18n-it@kde.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.9\n"
|
||||
|
||||
#: _translatorinfo.cpp:1
|
||||
msgid ""
|
||||
"_: NAME OF TRANSLATORS\n"
|
||||
"Your names"
|
||||
msgstr "Giorgio Moscardi"
|
||||
|
||||
#: _translatorinfo.cpp:3
|
||||
msgid ""
|
||||
"_: EMAIL OF TRANSLATORS\n"
|
||||
"Your emails"
|
||||
msgstr "enjoy.the.silence@iol.it"
|
||||
|
||||
#: komposedesktopwidget.cpp:60
|
||||
msgid "Desktop %1 - %2"
|
||||
msgstr "Desktop %1 - %2"
|
||||
|
||||
#: komposeglobal.cpp:158
|
||||
msgid "Komposé (ungrouped)"
|
||||
msgstr "Komposé (Non raggruppato)"
|
||||
|
||||
#: komposeglobal.cpp:162
|
||||
msgid "Komposé (grouped by virtual desktops)"
|
||||
msgstr "Komposé (Raggruppato per desktop virtuale)"
|
||||
|
||||
#: komposeglobal.cpp:166
|
||||
msgid "Komposé (current virtual desktop)"
|
||||
msgstr "Komposé (Desktop virtuale corrente)"
|
||||
|
||||
#: komposeglobal.cpp:175
|
||||
msgid "Configure &Global Shortcuts..."
|
||||
msgstr "Configura le scorciatoie &globali..."
|
||||
|
||||
#: komposeglobal.cpp:176
|
||||
msgid "About Komposé"
|
||||
msgstr "Informazioni su Komposé"
|
||||
|
||||
#: komposepreferences.cpp:38
|
||||
msgid "Komposé Preferences"
|
||||
msgstr "Impostazioni di Komposé"
|
||||
|
||||
#: komposepreferences.cpp:44
|
||||
msgid "Behavior"
|
||||
msgstr "Comportamento"
|
||||
|
||||
#: komposepreferences.cpp:46
|
||||
msgid "Layouts"
|
||||
msgstr "Schemi"
|
||||
|
||||
#: komposepreferences.cpp:50
|
||||
msgid "Default Layout"
|
||||
msgstr "Schema predefinito"
|
||||
|
||||
#: komposepreferences.cpp:52
|
||||
msgid ""
|
||||
"Determines which view should be started by default (e.g. when you click on "
|
||||
"the systray icon)."
|
||||
msgstr ""
|
||||
"Determina quale visuale sarà utilizzata come predefinita (ossia quando fai "
|
||||
"clic sull'icona nel vassoio di sistema)"
|
||||
|
||||
#: komposepreferences.cpp:55
|
||||
msgid "Ungrouped"
|
||||
msgstr "Non raggruppato"
|
||||
|
||||
#: komposepreferences.cpp:56
|
||||
msgid "Fullscreen layout that shows all windows in no specific order"
|
||||
msgstr ""
|
||||
"Schema a tutto schermo che mostra tutte le finestre in nessun ordine "
|
||||
"particolare"
|
||||
|
||||
#: komposepreferences.cpp:59
|
||||
msgid "Grouped by virtual desktops"
|
||||
msgstr "Raggruppato per desktop virtuale"
|
||||
|
||||
#: komposepreferences.cpp:60
|
||||
msgid ""
|
||||
"Fullscreen layout that shows a representation of your virtual desktops\n"
|
||||
" and places the windows inside."
|
||||
msgstr ""
|
||||
"Schema a tutto schermo che mostra una rappresentazione dei tuoi desktop\n"
|
||||
"virtuali e posiziona le finestre al suo interno."
|
||||
|
||||
#: komposepreferences.cpp:63
|
||||
msgid "Current virtual desktop"
|
||||
msgstr "Desktop virtuale corrente"
|
||||
|
||||
#: komposepreferences.cpp:64
|
||||
msgid ""
|
||||
"Fullscreen layout that shows the windows of the desktop you're currently "
|
||||
"working on."
|
||||
msgstr ""
|
||||
"Schema a tutto schermo che mostra le finestre del desktop in cui stai "
|
||||
"lavorando al momento."
|
||||
|
||||
#: komposepreferences.cpp:71
|
||||
msgid "Xinerama"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:74
|
||||
msgid "Use the whole desktop for Komposé"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:77
|
||||
#, fuzzy
|
||||
msgid "Use screen:"
|
||||
msgstr "Foto dello schermo passive"
|
||||
|
||||
#: komposepreferences.cpp:81
|
||||
msgid "Specify the screen where Komposé should appear."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:91 komposepreferences.cpp:99
|
||||
msgid "Screenshots"
|
||||
msgstr "Foto dello schermo"
|
||||
|
||||
#: komposepreferences.cpp:93
|
||||
msgid "Use XComposite if available"
|
||||
msgstr "Utilizza XComposite se disponibile"
|
||||
|
||||
#: komposepreferences.cpp:94
|
||||
msgid ""
|
||||
"Making use of the Composite extension of newer X Servers makes the grabbing "
|
||||
"of screenshots obsolete.\n"
|
||||
"The contents of all windows are drawn in back buffers that will be accessed "
|
||||
"by Komposé\n"
|
||||
"Note that the Composite implementation of even modern graphic card drivers "
|
||||
"is still very slow and may make your system pretty unusable."
|
||||
msgstr ""
|
||||
"L'utilizzo dell'estensione Composite dei server X più recenti rende obsoleto "
|
||||
"lo scatto delle foto allo schermo.\n"
|
||||
"I contenuti di tutte le finestre sono disegnati in buffer che saranno "
|
||||
"acceduti da Komposé.\n"
|
||||
"Nota che l'implementazione di Composite da parte dei driver delle schede "
|
||||
"video (anche di quelle più moderne) è ancora molto lenta, e può rendere il "
|
||||
"tuo sistema quasi inutilizzabile."
|
||||
|
||||
#: komposepreferences.cpp:102
|
||||
msgid "Passive screenshots"
|
||||
msgstr "Foto dello schermo passive"
|
||||
|
||||
#: komposepreferences.cpp:103
|
||||
msgid ""
|
||||
"Create a screenshot whenever you raise or active a window.\n"
|
||||
"When selected the amount the annoying popup-effect before every Komposé "
|
||||
"activation will be minimized to nearly zero.\n"
|
||||
"The drawback is that the screenshots are not so recent and may not display "
|
||||
"the actual content."
|
||||
msgstr ""
|
||||
"Scatta una foto allo schermo ogni volta che porti davanti o attivi una "
|
||||
"finestra.\n"
|
||||
"Quando selezionato, il fastidioso effetto-popup prima di ogni attivazione di "
|
||||
"Komposé sarà ridotto quasi a zero.\n"
|
||||
"Il rovescio della medaglia è che le foto non saranno così recenti e "
|
||||
"potrebbero non rispecchiare l'attuale contenuto delle finestre."
|
||||
|
||||
#: komposepreferences.cpp:108
|
||||
msgid "Delay between screenshots (ms):"
|
||||
msgstr "Intervallo tra le foto dello schermo (ms):"
|
||||
|
||||
#: komposepreferences.cpp:111
|
||||
msgid ""
|
||||
"Specifies the time to wait between the activation of a window and the "
|
||||
"screenshot taking.\n"
|
||||
"Increase it when your windows need more time to draw themselves after "
|
||||
"activation.\n"
|
||||
"Values below 300ms are not recommended, but may work in some cases."
|
||||
msgstr ""
|
||||
"Specifica il tempo da attendere tra l'attivazione di una finestra e lo "
|
||||
"scatto della foto allo schermo.\n"
|
||||
"Aumentalo quando le tue finestre richiedono più tempo per disegnarsi dopo "
|
||||
"essere state attivate.\n"
|
||||
"Valori sotto 300 ms sono sconsigliati, ma in alcuni casi possono funzionare "
|
||||
"bene."
|
||||
|
||||
#: komposepreferences.cpp:117
|
||||
msgid "Cache scaled Screenshots"
|
||||
msgstr "Metti in cache le foto dello schermo riscalate"
|
||||
|
||||
#: komposepreferences.cpp:118
|
||||
msgid ""
|
||||
"This may avoid some scaling operations to be called repeatedly when Komposé "
|
||||
"has been displayed before and the screenshot's size didn't change.\n"
|
||||
"It will however increase memory usage quite a bit."
|
||||
msgstr ""
|
||||
"Questo può evitare che alcune operazioni di riscalatura siano chiamate "
|
||||
"ripetutatamente quando Komposé è stato richiamato in precedenza e la "
|
||||
"dimensione delle foto non è cambiata.\n"
|
||||
"Comunque aumenterà leggermente l'utilizzo di memoria."
|
||||
|
||||
#: komposepreferences.cpp:126
|
||||
msgid "Autoactivate when mouse moves into"
|
||||
msgstr "Attiva automaticamente quando il mouse viene mosso nell'angolo"
|
||||
|
||||
#: komposepreferences.cpp:128
|
||||
msgid "Top-left corner"
|
||||
msgstr "In alto a sinistra"
|
||||
|
||||
#: komposepreferences.cpp:130
|
||||
msgid "Top-right corner"
|
||||
msgstr "In alto a destra"
|
||||
|
||||
#: komposepreferences.cpp:132
|
||||
msgid "Bottom-left corner"
|
||||
msgstr "In basso a sinistra"
|
||||
|
||||
#: komposepreferences.cpp:134
|
||||
msgid "Bottom-right corner"
|
||||
msgstr "In basso a destra"
|
||||
|
||||
#: komposepreferences.cpp:137
|
||||
msgid "Top edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:139
|
||||
msgid "Bottom edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:141
|
||||
msgid "Left edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:143
|
||||
msgid "Right edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:147
|
||||
msgid "Delay until activation (ms):"
|
||||
msgstr "Ritardo prima dell'attivazione (ms):"
|
||||
|
||||
#: komposepreferences.cpp:150
|
||||
msgid ""
|
||||
"Specifies the time in ms for which the mouse pointer must rest in the corner "
|
||||
"until auto-activation."
|
||||
msgstr ""
|
||||
"Specifica il tempo in millisecondi per cui il puntatore del mouse deve "
|
||||
"rimanere nell'angolo prima dell'attivazione automatica."
|
||||
|
||||
#: komposepreferences.cpp:165
|
||||
msgid "Enable image effects"
|
||||
msgstr "Attiva gli effetti immagine"
|
||||
|
||||
#: komposepreferences.cpp:166
|
||||
msgid ""
|
||||
"Lighten windows when the mouse moves over it or gray out minimized windows.\n"
|
||||
"Depending on your system specs this can be a bit slower."
|
||||
msgstr ""
|
||||
"Illumina le finestre quando il mouse passa sopra ad esse o colora di grigio "
|
||||
"le finestre minimizzate.\n"
|
||||
"A seconda delle caratteristiche del tuo sistema questo può essere piuttosto "
|
||||
"lento."
|
||||
|
||||
#: komposepreferences.cpp:171
|
||||
msgid "Show Desktop number on Systray icon"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:172
|
||||
msgid ""
|
||||
"Displays the number of the currently active Desktop on the Komposé systray "
|
||||
"icon."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:177
|
||||
msgid "Window Titles"
|
||||
msgstr "Titoli delle finestre"
|
||||
|
||||
#: komposepreferences.cpp:180
|
||||
msgid "Show window titles"
|
||||
msgstr "Mostra i titoli delle finestre"
|
||||
|
||||
#: komposepreferences.cpp:181
|
||||
msgid "Select Font..."
|
||||
msgstr "Seleziona il tipo di carattere..."
|
||||
|
||||
#: komposepreferences.cpp:182
|
||||
msgid "Display the name of every window in Komposé"
|
||||
msgstr "Mostra il nome di ogni finestra in Komposé"
|
||||
|
||||
#: komposepreferences.cpp:190
|
||||
msgid "Text color:"
|
||||
msgstr "Colore del testo: "
|
||||
|
||||
#: komposepreferences.cpp:194
|
||||
msgid "Shadow color:"
|
||||
msgstr "Colore dell'ombra: "
|
||||
|
||||
#: komposepreferences.cpp:204
|
||||
msgid "Task Icons"
|
||||
msgstr "Icone dei processi"
|
||||
|
||||
#: komposepreferences.cpp:205
|
||||
msgid "Show icons"
|
||||
msgstr "Mostra le icone"
|
||||
|
||||
#: komposepreferences.cpp:220
|
||||
msgid "Grouped by Virtual Desktops"
|
||||
msgstr "Raggruppato per desktop virtuale"
|
||||
|
||||
#: komposepreferences.cpp:221
|
||||
msgid "Layout empty virtual desktops minimized"
|
||||
msgstr "Mostra i desktop virtuali vuoti minimizzati"
|
||||
|
||||
#: komposepreferences.cpp:222
|
||||
msgid ""
|
||||
"Check this if you want empty virtual desktops to take less space on the "
|
||||
"screen.\n"
|
||||
"Uncheck it if you want them to be arranged statically, each of the same size."
|
||||
msgstr ""
|
||||
"Seleziona questo se vuoi che i desktop virtuali vuoti occupino meno spazio "
|
||||
"sullo schermo.\n"
|
||||
"Deselezionalo se vuoi che siano sempre organizzati allo stesso modo, tutti "
|
||||
"della stessa dimensione."
|
||||
|
||||
#: komposepreferences.cpp:228
|
||||
msgid "Desktop frame color:"
|
||||
msgstr "Colore della cornice dei desktop: "
|
||||
|
||||
#: komposepreferences.cpp:230
|
||||
msgid "Desktop frame highlight color:"
|
||||
msgstr "Colore di evidenziazione della cornice dei desktop: "
|
||||
|
||||
#: komposepreferences.cpp:235
|
||||
msgid "Select Desktop Names Font..."
|
||||
msgstr "Seleziona il tipo di carattere per i nomi dei desktop..."
|
||||
|
||||
#: komposepreferences.cpp:253
|
||||
msgid "16x16"
|
||||
msgstr "16x16"
|
||||
|
||||
#: komposepreferences.cpp:256
|
||||
msgid "32x32"
|
||||
msgstr "32x32"
|
||||
|
||||
#: komposepreferences.cpp:259
|
||||
msgid "64x64"
|
||||
msgstr "64x64"
|
||||
|
||||
#: komposepreferences.cpp:262
|
||||
msgid "Don't scale, show as they are (preferably bigger)"
|
||||
msgstr "Non riscalare, mostra così come sono (preferibilmente più grandi)"
|
||||
|
||||
#: komposesettings.cpp:52
|
||||
msgid "Show Komposé (default view)"
|
||||
msgstr "Mostra Komposé (Visuale predefinita)"
|
||||
|
||||
#: komposesettings.cpp:53
|
||||
msgid "Displays the view you have configured as default"
|
||||
msgstr "Mostra la visuale che hai selezionato come predefinita"
|
||||
|
||||
#: komposesettings.cpp:56
|
||||
msgid "Show Komposé (ungrouped)"
|
||||
msgstr "Mostra Komposé (Non raggruppato)"
|
||||
|
||||
#: komposesettings.cpp:57
|
||||
msgid "Displays all windows unsorted"
|
||||
msgstr "Mostra tutte le finestre non ordinate"
|
||||
|
||||
#: komposesettings.cpp:60
|
||||
msgid "Show Komposé (grouped by virtual desktops)"
|
||||
msgstr "Mostra Komposé (Raggruppato per desktop virtuale)"
|
||||
|
||||
#: komposesettings.cpp:61
|
||||
msgid "Displays all windows sorted by virtual desktops"
|
||||
msgstr "Mostra tutte le finestre ordinate per desktop virtuale"
|
||||
|
||||
#: komposesettings.cpp:64
|
||||
msgid "Show Komposé (current virtual desktop)"
|
||||
msgstr "Mostra Komposé (Desktop virtuale corrente)"
|
||||
|
||||
#: komposesettings.cpp:65
|
||||
msgid "Displays all windows on the current desktop"
|
||||
msgstr "Mostra tutte le finestre del desktop corrente"
|
||||
|
||||
#: komposetask.cpp:153
|
||||
msgid "modified"
|
||||
msgstr "modificato"
|
||||
|
||||
#: komposetaskprefswidget.cpp:31
|
||||
msgid "Task Actions"
|
||||
msgstr "Azioni del processo"
|
||||
|
||||
#: komposetaskprefswidget.cpp:32
|
||||
msgid "Task"
|
||||
msgstr "Processo"
|
||||
|
||||
#: komposetaskwidget.cpp:353
|
||||
msgid "Minimize/Restore"
|
||||
msgstr "Minimizza/Ripristina"
|
||||
|
||||
#: komposetaskwidget.cpp:367
|
||||
msgid "&All Desktops"
|
||||
msgstr "&Tutti i desktop"
|
||||
|
||||
#: komposetaskwidget.cpp:380
|
||||
msgid "To &Desktop"
|
||||
msgstr "Al &desktop"
|
||||
|
||||
#: main.cpp:32
|
||||
msgid "A fullscreen task manager for KDE"
|
||||
msgstr "Un gestore dei processi a tutto schermo per KDE"
|
||||
|
||||
#: main.cpp:38
|
||||
msgid "Do not show the systray icon"
|
||||
msgstr "Non mostrare l'icona nel vassoio di sistema"
|
||||
|
||||
#: main.cpp:39
|
||||
msgid "Display the default view and exit (non daemon mode)"
|
||||
msgstr "Mostra la visuale predefinita ed esci (modalità non demone)"
|
||||
|
||||
#: main.cpp:64
|
||||
msgid "Kompose"
|
||||
msgstr "Komposé"
|
||||
|
||||
#: rc.cpp:3
|
||||
#, no-c-format
|
||||
msgid "C&ustom"
|
||||
msgstr "&Personalizzato"
|
||||
|
||||
#~ msgid "Tint virtual desktop widgets:"
|
||||
#~ msgstr "Rendi opachi i riquadri dei desktop virtuali: "
|
||||
|
||||
#~ msgid "Colorize the transparent background of the virtual desktop widgets"
|
||||
#~ msgstr "Colora lo sfondo trasparente dei riquadri dei desktop virtuali"
|
@ -0,0 +1,392 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-06-09 15:37+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: _translatorinfo.cpp:1
|
||||
msgid ""
|
||||
"_: NAME OF TRANSLATORS\n"
|
||||
"Your names"
|
||||
msgstr ""
|
||||
|
||||
#: _translatorinfo.cpp:3
|
||||
msgid ""
|
||||
"_: EMAIL OF TRANSLATORS\n"
|
||||
"Your emails"
|
||||
msgstr ""
|
||||
|
||||
#: komposedesktopwidget.cpp:60
|
||||
msgid "Desktop %1 - %2"
|
||||
msgstr ""
|
||||
|
||||
#: komposeglobal.cpp:158
|
||||
msgid "Komposé (ungrouped)"
|
||||
msgstr ""
|
||||
|
||||
#: komposeglobal.cpp:162
|
||||
msgid "Komposé (grouped by virtual desktops)"
|
||||
msgstr ""
|
||||
|
||||
#: komposeglobal.cpp:166
|
||||
msgid "Komposé (current virtual desktop)"
|
||||
msgstr ""
|
||||
|
||||
#: komposeglobal.cpp:175
|
||||
msgid "Configure &Global Shortcuts..."
|
||||
msgstr ""
|
||||
|
||||
#: komposeglobal.cpp:176
|
||||
msgid "About Komposé"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:38
|
||||
msgid "Komposé Preferences"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:44
|
||||
msgid "Behavior"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:46
|
||||
msgid "Layouts"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:50
|
||||
msgid "Default Layout"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:52
|
||||
msgid ""
|
||||
"Determines which view should be started by default (e.g. when you click on "
|
||||
"the systray icon)."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:55
|
||||
msgid "Ungrouped"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:56
|
||||
msgid "Fullscreen layout that shows all windows in no specific order"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:59
|
||||
msgid "Grouped by virtual desktops"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:60
|
||||
msgid ""
|
||||
"Fullscreen layout that shows a representation of your virtual desktops\n"
|
||||
" and places the windows inside."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:63
|
||||
msgid "Current virtual desktop"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:64
|
||||
msgid ""
|
||||
"Fullscreen layout that shows the windows of the desktop you're currently "
|
||||
"working on."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:71
|
||||
msgid "Xinerama"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:74
|
||||
msgid "Use the whole desktop for Komposé"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:77
|
||||
msgid "Use screen:"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:81
|
||||
msgid "Specify the screen where Komposé should appear."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:91 komposepreferences.cpp:99
|
||||
msgid "Screenshots"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:93
|
||||
msgid "Use XComposite if available"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:94
|
||||
msgid ""
|
||||
"Making use of the Composite extension of newer X Servers makes the grabbing "
|
||||
"of screenshots obsolete.\n"
|
||||
"The contents of all windows are drawn in back buffers that will be accessed "
|
||||
"by Komposé\n"
|
||||
"Note that the Composite implementation of even modern graphic card drivers "
|
||||
"is still very slow and may make your system pretty unusable."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:102
|
||||
msgid "Passive screenshots"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:103
|
||||
msgid ""
|
||||
"Create a screenshot whenever you raise or active a window.\n"
|
||||
"When selected the amount the annoying popup-effect before every Komposé "
|
||||
"activation will be minimized to nearly zero.\n"
|
||||
"The drawback is that the screenshots are not so recent and may not display "
|
||||
"the actual content."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:108
|
||||
msgid "Delay between screenshots (ms):"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:111
|
||||
msgid ""
|
||||
"Specifies the time to wait between the activation of a window and the "
|
||||
"screenshot taking.\n"
|
||||
"Increase it when your windows need more time to draw themselves after "
|
||||
"activation.\n"
|
||||
"Values below 300ms are not recommended, but may work in some cases."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:117
|
||||
msgid "Cache scaled Screenshots"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:118
|
||||
msgid ""
|
||||
"This may avoid some scaling operations to be called repeatedly when Komposé "
|
||||
"has been displayed before and the screenshot's size didn't change.\n"
|
||||
"It will however increase memory usage quite a bit."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:126
|
||||
msgid "Autoactivate when mouse moves into"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:128
|
||||
msgid "Top-left corner"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:130
|
||||
msgid "Top-right corner"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:132
|
||||
msgid "Bottom-left corner"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:134
|
||||
msgid "Bottom-right corner"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:137
|
||||
msgid "Top edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:139
|
||||
msgid "Bottom edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:141
|
||||
msgid "Left edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:143
|
||||
msgid "Right edge"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:147
|
||||
msgid "Delay until activation (ms):"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:150
|
||||
msgid ""
|
||||
"Specifies the time in ms for which the mouse pointer must rest in the corner "
|
||||
"until auto-activation."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:165
|
||||
msgid "Enable image effects"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:166
|
||||
msgid ""
|
||||
"Lighten windows when the mouse moves over it or gray out minimized windows.\n"
|
||||
"Depending on your system specs this can be a bit slower."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:171
|
||||
msgid "Show Desktop number on Systray icon"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:172
|
||||
msgid ""
|
||||
"Displays the number of the currently active Desktop on the Komposé systray "
|
||||
"icon."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:177
|
||||
msgid "Window Titles"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:180
|
||||
msgid "Show window titles"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:181
|
||||
msgid "Select Font..."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:182
|
||||
msgid "Display the name of every window in Komposé"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:190
|
||||
msgid "Text color:"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:194
|
||||
msgid "Shadow color:"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:204
|
||||
msgid "Task Icons"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:205
|
||||
msgid "Show icons"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:220
|
||||
msgid "Grouped by Virtual Desktops"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:221
|
||||
msgid "Layout empty virtual desktops minimized"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:222
|
||||
msgid ""
|
||||
"Check this if you want empty virtual desktops to take less space on the "
|
||||
"screen.\n"
|
||||
"Uncheck it if you want them to be arranged statically, each of the same size."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:228
|
||||
msgid "Desktop frame color:"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:230
|
||||
msgid "Desktop frame highlight color:"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:235
|
||||
msgid "Select Desktop Names Font..."
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:253
|
||||
msgid "16x16"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:256
|
||||
msgid "32x32"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:259
|
||||
msgid "64x64"
|
||||
msgstr ""
|
||||
|
||||
#: komposepreferences.cpp:262
|
||||
msgid "Don't scale, show as they are (preferably bigger)"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:52
|
||||
msgid "Show Komposé (default view)"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:53
|
||||
msgid "Displays the view you have configured as default"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:56
|
||||
msgid "Show Komposé (ungrouped)"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:57
|
||||
msgid "Displays all windows unsorted"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:60
|
||||
msgid "Show Komposé (grouped by virtual desktops)"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:61
|
||||
msgid "Displays all windows sorted by virtual desktops"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:64
|
||||
msgid "Show Komposé (current virtual desktop)"
|
||||
msgstr ""
|
||||
|
||||
#: komposesettings.cpp:65
|
||||
msgid "Displays all windows on the current desktop"
|
||||
msgstr ""
|
||||
|
||||
#: komposetask.cpp:153
|
||||
msgid "modified"
|
||||
msgstr ""
|
||||
|
||||
#: komposetaskprefswidget.cpp:31
|
||||
msgid "Task Actions"
|
||||
msgstr ""
|
||||
|
||||
#: komposetaskprefswidget.cpp:32
|
||||
msgid "Task"
|
||||
msgstr ""
|
||||
|
||||
#: komposetaskwidget.cpp:353
|
||||
msgid "Minimize/Restore"
|
||||
msgstr ""
|
||||
|
||||
#: komposetaskwidget.cpp:367
|
||||
msgid "&All Desktops"
|
||||
msgstr ""
|
||||
|
||||
#: komposetaskwidget.cpp:380
|
||||
msgid "To &Desktop"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:32
|
||||
msgid "A fullscreen task manager for KDE"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:38
|
||||
msgid "Do not show the systray icon"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:39
|
||||
msgid "Display the default view and exit (non daemon mode)"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:64
|
||||
msgid "Kompose"
|
||||
msgstr ""
|
||||
|
||||
#: rc.cpp:3
|
||||
#, no-c-format
|
||||
msgid "C&ustom"
|
||||
msgstr ""
|
@ -0,0 +1,46 @@
|
||||
# set the include path for X, qt and KDE
|
||||
INCLUDES = $(all_includes) -I `imlib2-config --cflags`
|
||||
|
||||
# these are the headers for your project
|
||||
noinst_HEADERS = kompose.h komposetaskmanager.h komposetask.h komposewidget.h \
|
||||
komposetaskwidget.h komposedesktopwidget.h komposelayout.h komposesystray.h \
|
||||
komposefullscreenwidget.h komposesettings.h komposepreferences.h komposetaskprefswidget.h \
|
||||
komposeglobal.h komposetaskcontainerwidget.h komposetaskvisualizer.h \
|
||||
komposeviewmanager.h komposedcopiface.h
|
||||
|
||||
# let automoc handle all of the meta source files (moc)
|
||||
METASOURCES = AUTO
|
||||
|
||||
messages: rc.cpp
|
||||
$(XGETTEXT) *.cpp --language=C --from-code=UTF-8 -o $(podir)/kompose.pot
|
||||
|
||||
komposeiconsdir = $(kde_datadir)/kompose/icons
|
||||
komposeicons_ICON = AUTO
|
||||
|
||||
#########################################################################
|
||||
# APPLICATION SECTION
|
||||
#########################################################################
|
||||
# this is the program that gets installed. it's name is used for all
|
||||
# of the other Makefile.am variables
|
||||
bin_PROGRAMS = kompose
|
||||
|
||||
# the application source, library search path, and link libraries
|
||||
kompose_SOURCES = main.cpp kompose.cpp komposetaskmanager.cpp komposetask.cpp \
|
||||
komposewidget.cpp komposetaskwidget.cpp komposedesktopwidget.cpp komposelayout.cpp \
|
||||
komposesystray.cpp komposefullscreenwidget.cpp komposesettings.cpp komposepreferences.cpp \
|
||||
komposetaskprefswidget.cpp komposeglobal.cpp komposetaskcontainerwidget.cpp \
|
||||
komposetaskvisualizer.cpp komposeviewmanager.cpp komposedcopiface.skel
|
||||
#kompose_LDFLAGS = $(KDE_RPATH) $(all_libraries) -lX11 -lXext -lm `pkg-config xft xrender xcomposite xdamage xfixes --libs` `imlib2-config --libs`
|
||||
kompose_LDFLAGS = $(KDE_RPATH) $(all_libraries) -lX11 -lXext -lm `imlib2-config --libs`
|
||||
kompose_LDADD = $(LIB_KDEUI) $(LIB_XCOMPOSITE) $(LIB_XDAMAGE)
|
||||
|
||||
# this is where the desktop file will go
|
||||
shelldesktopdir = $(kde_appsdir)/Utilities
|
||||
shelldesktop_DATA = kompose.desktop
|
||||
|
||||
# this is where the shell's XML-GUI resource file goes
|
||||
shellrcdir = $(kde_datadir)/kompose
|
||||
shellrc_DATA = komposeui.rc
|
||||
|
||||
|
||||
|
@ -0,0 +1,686 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
bin_PROGRAMS = kompose$(EXEEXT)
|
||||
subdir = src
|
||||
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(shelldesktopdir)" \
|
||||
"$(DESTDIR)$(shellrcdir)"
|
||||
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am_kompose_OBJECTS = main.$(OBJEXT) kompose.$(OBJEXT) \
|
||||
komposetaskmanager.$(OBJEXT) komposetask.$(OBJEXT) \
|
||||
komposewidget.$(OBJEXT) komposetaskwidget.$(OBJEXT) \
|
||||
komposedesktopwidget.$(OBJEXT) komposelayout.$(OBJEXT) \
|
||||
komposesystray.$(OBJEXT) komposefullscreenwidget.$(OBJEXT) \
|
||||
komposesettings.$(OBJEXT) komposepreferences.$(OBJEXT) \
|
||||
komposetaskprefswidget.$(OBJEXT) komposeglobal.$(OBJEXT) \
|
||||
komposetaskcontainerwidget.$(OBJEXT) \
|
||||
komposetaskvisualizer.$(OBJEXT) komposeviewmanager.$(OBJEXT)
|
||||
kompose_OBJECTS = $(am_kompose_OBJECTS)
|
||||
am__DEPENDENCIES_1 =
|
||||
kompose_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1)
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
|
||||
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
|
||||
$(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
CXXLD = $(CXX)
|
||||
CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
|
||||
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
SOURCES = $(kompose_SOURCES)
|
||||
DIST_SOURCES = $(kompose_SOURCES)
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
shelldesktopDATA_INSTALL = $(INSTALL_DATA)
|
||||
shellrcDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(shelldesktop_DATA) $(shellrc_DATA)
|
||||
HEADERS = $(noinst_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ARTSCCONFIG = @ARTSCCONFIG@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTODIRS = @AUTODIRS@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CONF_FILES = @CONF_FILES@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DCOPIDL = @DCOPIDL@
|
||||
DCOPIDL2CPP = @DCOPIDL2CPP@
|
||||
DCOPIDLNG = @DCOPIDLNG@
|
||||
DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
IMLIB2_CFLAGS = @IMLIB2_CFLAGS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
|
||||
KCONFIG_COMPILER = @KCONFIG_COMPILER@
|
||||
KDECONFIG = @KDECONFIG@
|
||||
KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
|
||||
KDE_INCLUDES = @KDE_INCLUDES@
|
||||
KDE_LDFLAGS = @KDE_LDFLAGS@
|
||||
KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
|
||||
KDE_MT_LIBS = @KDE_MT_LIBS@
|
||||
KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
|
||||
KDE_PLUGIN = @KDE_PLUGIN@
|
||||
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@
|
||||
KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
|
||||
KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
|
||||
KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCOMPAT = @LIBCOMPAT@
|
||||
LIBCRYPT = @LIBCRYPT@
|
||||
LIBDL = @LIBDL@
|
||||
LIBJPEG = @LIBJPEG@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBPNG = @LIBPNG@
|
||||
LIBPTHREAD = @LIBPTHREAD@
|
||||
LIBRESOLV = @LIBRESOLV@
|
||||
LIBS = @LIBS@
|
||||
LIBSM = @LIBSM@
|
||||
LIBSOCKET = @LIBSOCKET@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBUCB = @LIBUCB@
|
||||
LIBUTIL = @LIBUTIL@
|
||||
LIBZ = @LIBZ@
|
||||
LIB_IMLIB2 = @LIB_IMLIB2@
|
||||
LIB_KAB = @LIB_KAB@
|
||||
LIB_KABC = @LIB_KABC@
|
||||
LIB_KDECORE = @LIB_KDECORE@
|
||||
LIB_KDEPIM = @LIB_KDEPIM@
|
||||
LIB_KDEPRINT = @LIB_KDEPRINT@
|
||||
LIB_KDEUI = @LIB_KDEUI@
|
||||
LIB_KFILE = @LIB_KFILE@
|
||||
LIB_KFM = @LIB_KFM@
|
||||
LIB_KHTML = @LIB_KHTML@
|
||||
LIB_KIO = @LIB_KIO@
|
||||
LIB_KPARTS = @LIB_KPARTS@
|
||||
LIB_KSPELL = @LIB_KSPELL@
|
||||
LIB_KSYCOCA = @LIB_KSYCOCA@
|
||||
LIB_KUTILS = @LIB_KUTILS@
|
||||
LIB_POLL = @LIB_POLL@
|
||||
LIB_QPE = @LIB_QPE@
|
||||
LIB_QT = @LIB_QT@
|
||||
LIB_SMB = @LIB_SMB@
|
||||
LIB_X11 = @LIB_X11@
|
||||
LIB_XCOMPOSITE = @LIB_XCOMPOSITE@
|
||||
LIB_XDAMAGE = @LIB_XDAMAGE@
|
||||
LIB_XEXT = @LIB_XEXT@
|
||||
LIB_XRENDER = @LIB_XRENDER@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MCOPIDL = @MCOPIDL@
|
||||
MEINPROC = @MEINPROC@
|
||||
MOC = @MOC@
|
||||
MSGFMT = @MSGFMT@
|
||||
NOOPT_CFLAGS = @NOOPT_CFLAGS@
|
||||
NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
QTE_NORTTI = @QTE_NORTTI@
|
||||
QT_INCLUDES = @QT_INCLUDES@
|
||||
QT_LDFLAGS = @QT_LDFLAGS@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
TOPSUBDIRS = @TOPSUBDIRS@
|
||||
UIC = @UIC@
|
||||
UIC_TR = @UIC_TR@
|
||||
USER_INCLUDES = @USER_INCLUDES@
|
||||
USER_LDFLAGS = @USER_LDFLAGS@
|
||||
USE_EXCEPTIONS = @USE_EXCEPTIONS@
|
||||
USE_RTTI = @USE_RTTI@
|
||||
USE_THREADS = @USE_THREADS@
|
||||
VERSION = @VERSION@
|
||||
WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
XMLLINT = @XMLLINT@
|
||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_INCLUDES = @X_INCLUDES@
|
||||
X_LDFLAGS = @X_LDFLAGS@
|
||||
X_PRE_LIBS = @X_PRE_LIBS@
|
||||
X_RPATH = @X_RPATH@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
all_includes = @all_includes@
|
||||
all_libraries = @all_libraries@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
include_ARTS_FALSE = @include_ARTS_FALSE@
|
||||
include_ARTS_TRUE = @include_ARTS_TRUE@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
kde_appsdir = @kde_appsdir@
|
||||
kde_bindir = @kde_bindir@
|
||||
kde_confdir = @kde_confdir@
|
||||
kde_datadir = @kde_datadir@
|
||||
kde_htmldir = @kde_htmldir@
|
||||
kde_icondir = @kde_icondir@
|
||||
kde_includes = @kde_includes@
|
||||
kde_kcfgdir = @kde_kcfgdir@
|
||||
kde_libraries = @kde_libraries@
|
||||
kde_libs_htmldir = @kde_libs_htmldir@
|
||||
kde_libs_prefix = @kde_libs_prefix@
|
||||
kde_locale = @kde_locale@
|
||||
kde_mimedir = @kde_mimedir@
|
||||
kde_moduledir = @kde_moduledir@
|
||||
kde_qtver = @kde_qtver@
|
||||
kde_servicesdir = @kde_servicesdir@
|
||||
kde_servicetypesdir = @kde_servicetypesdir@
|
||||
kde_sounddir = @kde_sounddir@
|
||||
kde_styledir = @kde_styledir@
|
||||
kde_templatesdir = @kde_templatesdir@
|
||||
kde_wallpaperdir = @kde_wallpaperdir@
|
||||
kde_widgetdir = @kde_widgetdir@
|
||||
kdeinitdir = @kdeinitdir@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
qt_includes = @qt_includes@
|
||||
qt_libraries = @qt_libraries@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
x_includes = @x_includes@
|
||||
x_libraries = @x_libraries@
|
||||
xdg_appsdir = @xdg_appsdir@
|
||||
xdg_directorydir = @xdg_directorydir@
|
||||
xdg_menudir = @xdg_menudir@
|
||||
|
||||
# set the include path for X, qt and KDE
|
||||
INCLUDES = $(all_includes) -I `imlib2-config --cflags`
|
||||
|
||||
# these are the headers for your project
|
||||
noinst_HEADERS = kompose.h komposetaskmanager.h komposetask.h komposewidget.h \
|
||||
komposetaskwidget.h komposedesktopwidget.h komposelayout.h komposesystray.h \
|
||||
komposefullscreenwidget.h komposesettings.h komposepreferences.h komposetaskprefswidget.h \
|
||||
komposeglobal.h komposetaskcontainerwidget.h komposetaskvisualizer.h \
|
||||
komposeviewmanager.h komposedcopiface.h
|
||||
|
||||
|
||||
# let automoc handle all of the meta source files (moc)
|
||||
METASOURCES = AUTO
|
||||
komposeiconsdir = $(kde_datadir)/kompose/icons
|
||||
komposeicons_ICON = AUTO
|
||||
|
||||
# the application source, library search path, and link libraries
|
||||
kompose_SOURCES = main.cpp kompose.cpp komposetaskmanager.cpp komposetask.cpp \
|
||||
komposewidget.cpp komposetaskwidget.cpp komposedesktopwidget.cpp komposelayout.cpp \
|
||||
komposesystray.cpp komposefullscreenwidget.cpp komposesettings.cpp komposepreferences.cpp \
|
||||
komposetaskprefswidget.cpp komposeglobal.cpp komposetaskcontainerwidget.cpp \
|
||||
komposetaskvisualizer.cpp komposeviewmanager.cpp komposedcopiface.skel
|
||||
|
||||
#kompose_LDFLAGS = $(KDE_RPATH) $(all_libraries) -lX11 -lXext -lm `pkg-config xft xrender xcomposite xdamage xfixes --libs` `imlib2-config --libs`
|
||||
kompose_LDFLAGS = $(KDE_RPATH) $(all_libraries) -lX11 -lXext -lm `imlib2-config --libs`
|
||||
kompose_LDADD = $(LIB_KDEUI) $(LIB_XCOMPOSITE) $(LIB_XDAMAGE)
|
||||
|
||||
# this is where the desktop file will go
|
||||
shelldesktopdir = $(kde_appsdir)/Utilities
|
||||
shelldesktop_DATA = kompose.desktop
|
||||
|
||||
# this is where the shell's XML-GUI resource file goes
|
||||
shellrcdir = $(kde_datadir)/kompose
|
||||
shellrc_DATA = komposeui.rc
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .cpp .lo .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu src/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
if test -f $$p \
|
||||
|| test -f $$p1 \
|
||||
; then \
|
||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
||||
done
|
||||
|
||||
clean-binPROGRAMS:
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f $$p $$f"; \
|
||||
rm -f $$p $$f ; \
|
||||
done
|
||||
kompose$(EXEEXT): $(kompose_OBJECTS) $(kompose_DEPENDENCIES)
|
||||
@rm -f kompose$(EXEEXT)
|
||||
$(CXXLINK) $(kompose_LDFLAGS) $(kompose_OBJECTS) $(kompose_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kompose.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposedesktopwidget.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposefullscreenwidget.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposeglobal.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposelayout.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposepreferences.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposesettings.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposesystray.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposetask.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposetaskcontainerwidget.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposetaskmanager.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposetaskprefswidget.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposetaskvisualizer.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposetaskwidget.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposeviewmanager.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/komposewidget.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
|
||||
|
||||
.cpp.o:
|
||||
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
|
||||
|
||||
.cpp.obj:
|
||||
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
.cpp.lo:
|
||||
@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
install-shelldesktopDATA: $(shelldesktop_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(shelldesktopdir)" || $(mkdir_p) "$(DESTDIR)$(shelldesktopdir)"
|
||||
@list='$(shelldesktop_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(shelldesktopDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(shelldesktopdir)/$$f'"; \
|
||||
$(shelldesktopDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(shelldesktopdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-shelldesktopDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(shelldesktop_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(shelldesktopdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(shelldesktopdir)/$$f"; \
|
||||
done
|
||||
install-shellrcDATA: $(shellrc_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(shellrcdir)" || $(mkdir_p) "$(DESTDIR)$(shellrcdir)"
|
||||
@list='$(shellrc_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(shellrcDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(shellrcdir)/$$f'"; \
|
||||
$(shellrcDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(shellrcdir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-shellrcDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(shellrc_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(shellrcdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(shellrcdir)/$$f"; \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(shelldesktopdir)" "$(DESTDIR)$(shellrcdir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-shelldesktopDATA install-shellrcDATA
|
||||
|
||||
install-exec-am: install-binPROGRAMS
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-binPROGRAMS uninstall-info-am \
|
||||
uninstall-shelldesktopDATA uninstall-shellrcDATA
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
|
||||
clean-generic clean-libtool ctags distclean distclean-compile \
|
||||
distclean-generic distclean-libtool distclean-tags distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-binPROGRAMS install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-shelldesktopDATA install-shellrcDATA install-strip \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-binPROGRAMS \
|
||||
uninstall-info-am uninstall-shelldesktopDATA \
|
||||
uninstall-shellrcDATA
|
||||
|
||||
|
||||
messages: rc.cpp
|
||||
$(XGETTEXT) *.cpp --language=C --from-code=UTF-8 -o $(podir)/kompose.pot
|
||||
# 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:
|
After Width: | Height: | Size: 886 B |
After Width: | Height: | Size: 809 B |
After Width: | Height: | Size: 681 B |
After Width: | Height: | Size: 684 B |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.6 KiB |
@ -0,0 +1,88 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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 "kompose.h"
|
||||
|
||||
#include "komposeglobal.h"
|
||||
#include "komposesettings.h"
|
||||
#include "komposetaskmanager.h"
|
||||
|
||||
#include <klocale.h>
|
||||
#include <kuniqueapplication.h>
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#ifdef COMPOSITE
|
||||
#include <X11/Xatom.h>
|
||||
#include <X11/extensions/Xcomposite.h>
|
||||
#include <X11/extensions/Xdamage.h>
|
||||
#include <X11/extensions/Xrender.h>
|
||||
#endif
|
||||
|
||||
Kompose::Kompose()
|
||||
{
|
||||
}
|
||||
|
||||
Kompose::~Kompose()
|
||||
{}
|
||||
|
||||
bool Kompose::x11EventFilter (XEvent *event)
|
||||
{
|
||||
#ifdef COMPOSITE
|
||||
if ( KomposeGlobal::instance()->hasXcomposite() && KomposeSettings::instance()->getUseComposite() )
|
||||
{
|
||||
if ( event->type == KomposeGlobal::instance()->getDamageEvent() + XDamageNotify )
|
||||
{
|
||||
KomposeTaskManager::instance()->processX11Event( event );
|
||||
// XDamageNotifyEvent *e = reinterpret_cast<XDamageNotifyEvent*>( event );
|
||||
// // e->drawable is the window ID of the damaged window
|
||||
// // e->geometry is the geometry of the damaged window
|
||||
// // e->area is the bounding rect for the damaged area
|
||||
// // e->damage is the damage handle returned by XDamageCreate()
|
||||
//
|
||||
// // Subtract all the damage, repairing the window.
|
||||
// XDamageSubtract( dpy, e->damage, None, None );
|
||||
}
|
||||
//
|
||||
// else if ( event->type == shape_event + ShapeNotify )
|
||||
// {
|
||||
// XShapeEvent *e = reinterpret_cast<XShapeEvent*>( event );
|
||||
// // It's probably safe to assume that the window shape region
|
||||
// // is invalid at this point...
|
||||
// }
|
||||
|
||||
else if ( event->type == ConfigureNotify )
|
||||
{
|
||||
// XConfigureEvent *e = &event->xconfigure;
|
||||
// The windows size, position or Z index in the stacking
|
||||
// order has changed
|
||||
KomposeTaskManager::instance()->processX11Event( event );
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
// This costed me nerves:
|
||||
// Call this or kwinmodule won't work
|
||||
return KApplication::x11EventFilter(event);
|
||||
}
|
||||
|
||||
|
||||
#include "kompose.moc"
|
@ -0,0 +1,19 @@
|
||||
[Desktop Entry]
|
||||
Comment=An Apple Exposé like Taskmanager
|
||||
Comment[en_US]=An Apple Exposé like Taskmanager
|
||||
Encoding=UTF-8
|
||||
Exec=kompose
|
||||
GenericName=Window Switcher
|
||||
GenericName[en_US]=
|
||||
Icon=kompose
|
||||
MimeType=
|
||||
Name=Komposé
|
||||
Name[en_US]=Komposé
|
||||
Path=
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
TerminalOptions=
|
||||
Type=Application
|
||||
X-DCOP-ServiceType=
|
||||
X-KDE-SubstituteUID=false
|
||||
X-KDE-Username=
|
@ -0,0 +1,47 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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. *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef _KOMPOSE_H_
|
||||
#define _KOMPOSE_H_
|
||||
|
||||
// #ifdef HAVE_CONFIG_H
|
||||
// #include <config.h>
|
||||
// #endif
|
||||
|
||||
#include <kuniqueapplication.h>
|
||||
|
||||
|
||||
/**
|
||||
* @short Application Main entry point and x11 Event Receiver
|
||||
* @author Hans Oischinger <hans.oischinger@kde-mail.net>
|
||||
*/
|
||||
class Kompose : public KUniqueApplication
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
Kompose();
|
||||
virtual ~Kompose();
|
||||
|
||||
protected:
|
||||
bool x11EventFilter (XEvent *);
|
||||
|
||||
};
|
||||
|
||||
#endif // _KOMPOSE_H_
|
@ -0,0 +1,16 @@
|
||||
Begin3
|
||||
Title: kompose -- Some description
|
||||
Version: 0.5.2
|
||||
Entered-date:
|
||||
Description:
|
||||
Keywords: KDE Qt
|
||||
Author: Hans Oischinger <oisch@sourceforge.net>
|
||||
Maintained-by: Hans Oischinger <oisch@sourceforge.net>
|
||||
Home-page:
|
||||
Alternate-site:
|
||||
Primary-site: ftp://ftp.kde.org/pub/kde/unstable/apps/utils
|
||||
xxxxxx kompose-0.5.2.tar.gz
|
||||
xxx kompose.lsm
|
||||
Platform: Linux. Needs KDE
|
||||
Copying-policy: GPL
|
||||
End
|
@ -0,0 +1,33 @@
|
||||
//
|
||||
// C++ Interface: %{MODULE}
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#ifndef KOMPOSEDCOPIFACE_H
|
||||
#define KOMPOSEDCOPIFACE_H
|
||||
|
||||
#include <dcopobject.h>
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeDcopIface : virtual public DCOPObject
|
||||
{
|
||||
K_DCOP
|
||||
|
||||
k_dcop:
|
||||
|
||||
virtual void createDefaultView() = 0;
|
||||
virtual void createVirtualDesktopView() = 0;
|
||||
virtual void createCurrentDesktopView() = 0;
|
||||
virtual void createWorldView() = 0;
|
||||
virtual void closeCurrentView() = 0;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,239 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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 "komposedesktopwidget.h"
|
||||
#include "komposelayout.h"
|
||||
#include "komposetask.h"
|
||||
#include "komposetaskwidget.h"
|
||||
#include "komposeviewmanager.h"
|
||||
#include "komposetaskmanager.h"
|
||||
#include "komposesettings.h"
|
||||
#include "komposeglobal.h"
|
||||
|
||||
#include <qdesktopwidget.h>
|
||||
#include <qcolor.h>
|
||||
#include <qpainter.h>
|
||||
#include <qapplication.h>
|
||||
#include <qdragobject.h>
|
||||
#include <qtooltip.h>
|
||||
|
||||
#include <klocale.h>
|
||||
#include <kwin.h>
|
||||
#include <ksharedpixmap.h>
|
||||
#include <krootpixmap.h>
|
||||
#include <kwinmodule.h>
|
||||
#include <kcursor.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
|
||||
KomposeDesktopWidget::KomposeDesktopWidget(int desktop, QWidget *parent, KomposeLayout *l, const char *name)
|
||||
: KomposeTaskContainerWidget( desktop, parent, l, name ),
|
||||
highlight(false)
|
||||
{
|
||||
// Retrieve geometry
|
||||
// QDesktopWidget *deskwidget = new QDesktopWidget();
|
||||
// deskRect = deskwidget->screenGeometry();
|
||||
// delete deskwidget;
|
||||
initFonts();
|
||||
|
||||
// Set Desktop background as our background
|
||||
setBackgroundMode( Qt::NoBackground );
|
||||
|
||||
KWinModule kwinmodule( this, 1 );
|
||||
deskName = kwinmodule.desktopName(desktop+1);
|
||||
|
||||
QToolTip::add( this, i18n("Desktop %1 - %2").arg(desktop).arg(deskName) );
|
||||
|
||||
rootpix = new KRootPixmap (this);
|
||||
rootpix->start();
|
||||
setAcceptDrops(TRUE);
|
||||
|
||||
createTaskWidgets();
|
||||
|
||||
connect( KomposeTaskManager::instance(), SIGNAL( newTask( KomposeTask* ) ), this, SLOT( createTaskWidget( KomposeTask* ) ) );
|
||||
|
||||
setFocusPolicy(QWidget::ClickFocus);
|
||||
|
||||
}
|
||||
|
||||
|
||||
KomposeDesktopWidget::~KomposeDesktopWidget()
|
||||
{
|
||||
disconnect( KomposeTaskManager::instance(), SIGNAL( newTask( KomposeTask* ) ), this, SLOT( createTaskWidget( KomposeTask* ) ) );
|
||||
}
|
||||
|
||||
void KomposeDesktopWidget::initFonts()
|
||||
{
|
||||
titleFont = KomposeSettings::instance()->getDesktopTitleFont();
|
||||
}
|
||||
|
||||
|
||||
// int KomposeDesktopWidget::getHeightForWidth( int w ) const
|
||||
// {
|
||||
// kdDebug() << "KomposeDesktopWidget::getHeightForWidth()");
|
||||
// return ((double)w / (double)deskRect.width()) * deskRect.height();
|
||||
// }
|
||||
//
|
||||
// int KomposeDesktopWidget::getWidthForHeight( int h ) const
|
||||
// {
|
||||
// kdDebug() << "KomposeDesktopWidget::getWidthForHeight()");
|
||||
// return ((double)h / (double)deskRect.height()) * deskRect.width();
|
||||
// }
|
||||
//
|
||||
// double KomposeDesktopWidget::getAspectRatio()
|
||||
// {
|
||||
// kdDebug() << "KomposeDesktopWidget::getAspectRatio()");
|
||||
// return (double)deskRect.width() / (double)deskRect.height();
|
||||
// }
|
||||
|
||||
|
||||
void KomposeDesktopWidget::leaveEvent ( QEvent * )
|
||||
{
|
||||
// Unset highlight if cursor moves out of our rect
|
||||
// but not if it enters a child widget
|
||||
QRect deskRect;
|
||||
deskRect.setTopLeft(mapToGlobal( QPoint(0,0) ));
|
||||
deskRect.setWidth(width());
|
||||
deskRect.setHeight(height());
|
||||
if ( !deskRect.contains( QCursor::pos() ) )
|
||||
highlight = false;
|
||||
|
||||
unsetCursor();
|
||||
repaint();
|
||||
}
|
||||
|
||||
void KomposeDesktopWidget::enterEvent ( QEvent * )
|
||||
{
|
||||
setFocus();
|
||||
setCursor( KCursor::handCursor() );
|
||||
highlight = true;
|
||||
repaint();
|
||||
}
|
||||
|
||||
void KomposeDesktopWidget::focusInEvent ( QFocusEvent * )
|
||||
{
|
||||
highlight = true;
|
||||
repaint();
|
||||
}
|
||||
|
||||
void KomposeDesktopWidget::focusOutEvent ( QFocusEvent * )
|
||||
{
|
||||
// Unset highlight if cursor moves out of our rect
|
||||
// but not if it enters a child widget
|
||||
QRect deskRect;
|
||||
deskRect.setTopLeft(mapToGlobal( QPoint(0,0) ));
|
||||
deskRect.setWidth(width());
|
||||
deskRect.setHeight(height());
|
||||
if ( !deskRect.contains( QCursor::pos() ) )
|
||||
highlight = false;
|
||||
|
||||
repaint();
|
||||
}
|
||||
|
||||
void KomposeDesktopWidget::mouseReleaseEvent ( QMouseEvent * e )
|
||||
{
|
||||
if ( !rect().contains( e->pos() ) )
|
||||
return;
|
||||
KomposeViewManager::instance()->setCurrentDesktop(desktop);
|
||||
}
|
||||
|
||||
|
||||
void KomposeDesktopWidget::mouseDoubleClickEvent ( QMouseEvent * e )
|
||||
{
|
||||
if ( !rect().contains( e->pos() ) )
|
||||
return;
|
||||
KomposeViewManager::instance()->setCurrentDesktop(desktop);
|
||||
}
|
||||
|
||||
|
||||
void KomposeDesktopWidget::paintEvent ( QPaintEvent * )
|
||||
{
|
||||
// KomposeWidget::paintEvent(e);
|
||||
QPainter p;
|
||||
p.begin( this );
|
||||
// QPoint tl = mapToGlobal(QPoint(0,0));
|
||||
// p.drawPixmap(0,0, *KomposeGlobal::instance()->getDesktopBgPixmap(),
|
||||
// tl.x(), tl.y(), width(), height());
|
||||
|
||||
p.setFont(titleFont);
|
||||
|
||||
if (highlight)
|
||||
p.setPen( KomposeSettings::instance()->getDesktopTitleFontHighlightColor() );
|
||||
else
|
||||
p.setPen( KomposeSettings::instance()->getDesktopTitleFontColor() );
|
||||
|
||||
// Bounding rect
|
||||
p.drawRect(rect());
|
||||
|
||||
// paint the Desktop num & name (centered if empty, bottom right if not)
|
||||
if ( layout->getNumofChilds() == 0 )
|
||||
p.drawText(QRect(QPoint(0,0), size()), Qt::AlignCenter, QString("Desktop %1 - %2").arg(desktop+1).arg(deskName));
|
||||
else
|
||||
p.drawText(QRect(QPoint(0,0), size()), Qt::AlignRight | Qt::AlignBottom, QString("Desktop %1 - %2").arg(desktop+1).arg(deskName));
|
||||
|
||||
p.end();
|
||||
}
|
||||
|
||||
void KomposeDesktopWidget::dragEnterEvent( QDragEnterEvent* e )
|
||||
{
|
||||
kdDebug() << "KomposeDesktopWidget::dragEnterEvent" << endl;
|
||||
e->accept( QTextDrag::canDecode(e) );
|
||||
}
|
||||
|
||||
void KomposeDesktopWidget::dropEvent ( QDropEvent * e )
|
||||
{
|
||||
QString text;
|
||||
if ( QTextDrag::decode(e, text) )
|
||||
{
|
||||
kdDebug() << "KomposeDesktopWidget::dropEvent - Received Task drop" << endl;
|
||||
KomposeTaskWidget* dropWidget = dynamic_cast<KomposeTaskWidget*>(e->source());
|
||||
dropWidget->getTask()->toDesktop( desktop + 1);
|
||||
//if ( dropWidget->parentWidget() != this)
|
||||
// dropWidget->reparent( this, QPoint(0,0), true );
|
||||
|
||||
e->accept();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void KomposeDesktopWidget::childEvent ( QChildEvent * ce)
|
||||
{
|
||||
KomposeWidget::childEvent( ce );
|
||||
emit contentsChanged();
|
||||
}
|
||||
|
||||
|
||||
void KomposeDesktopWidget::keyReleaseEvent ( QKeyEvent * e )
|
||||
{
|
||||
if ( e->key() == Qt::Key_Return || e->key() == Qt::Key_Space )
|
||||
{
|
||||
kdDebug() << "KomposeDesktopWidget::keyReleaseEvent - Switching to Desktop!" << endl;
|
||||
KomposeViewManager::instance()->setCurrentDesktop(desktop);
|
||||
e->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
kdDebug() << "KomposeDesktopWidget::keyReleaseEvent - ignored..." << endl;
|
||||
e->ignore();
|
||||
}
|
||||
KomposeTaskContainerWidget::keyReleaseEvent(e);
|
||||
}
|
||||
|
||||
|
||||
#include "komposedesktopwidget.moc"
|
@ -0,0 +1,70 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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. *
|
||||
***************************************************************************/
|
||||
#ifndef KOMPOSEDESKTOPWIDGET_H
|
||||
#define KOMPOSEDESKTOPWIDGET_H
|
||||
|
||||
#include "komposetaskcontainerwidget.h"
|
||||
|
||||
class KomposeLayout;
|
||||
class KomposeTask;
|
||||
class KRootPixmap;
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeDesktopWidget : public KomposeTaskContainerWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KomposeDesktopWidget(int desktop, QWidget *parent = 0, KomposeLayout *l = 0, const char *name = 0);
|
||||
|
||||
~KomposeDesktopWidget();
|
||||
|
||||
// int getHeightForWidth( int w ) const;
|
||||
// int getWidthForHeight( int h ) const;
|
||||
// double getAspectRatio();
|
||||
|
||||
signals:
|
||||
void contentsChanged();
|
||||
|
||||
protected:
|
||||
void paintEvent ( QPaintEvent * );
|
||||
void dragEnterEvent ( QDragEnterEvent * );
|
||||
void dropEvent ( QDropEvent * );
|
||||
void leaveEvent ( QEvent * );
|
||||
void enterEvent ( QEvent * );
|
||||
void mouseReleaseEvent ( QMouseEvent * e );
|
||||
void mouseDoubleClickEvent ( QMouseEvent * e );
|
||||
void childEvent( QChildEvent * ce);
|
||||
void focusInEvent ( QFocusEvent * );
|
||||
void focusOutEvent ( QFocusEvent * );
|
||||
void keyReleaseEvent ( QKeyEvent * e );
|
||||
|
||||
protected slots:
|
||||
void initFonts();
|
||||
|
||||
private:
|
||||
QRect deskRect;
|
||||
QString deskName;
|
||||
bool highlight; // Highlight widget?
|
||||
QFont titleFont;
|
||||
KRootPixmap *rootpix;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,223 @@
|
||||
//
|
||||
// C++ Implementation: komposefullscreenwidget
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposefullscreenwidget.h"
|
||||
|
||||
#include "komposedesktopwidget.h"
|
||||
#include "komposetaskwidget.h"
|
||||
#include "komposeviewmanager.h"
|
||||
#include "komposetaskmanager.h"
|
||||
#include "komposeglobal.h"
|
||||
#include "komposelayout.h"
|
||||
|
||||
#include <qobjectlist.h>
|
||||
#include <qptrlist.h>
|
||||
#include <qpainter.h>
|
||||
#include <qdesktopwidget.h>
|
||||
|
||||
#include <kwin.h>
|
||||
#include <kapplication.h>
|
||||
#include <kpopupmenu.h>
|
||||
#include <kaction.h>
|
||||
#include <ksharedpixmap.h>
|
||||
#include <kcursor.h>
|
||||
#include <kglobalsettings.h>
|
||||
#include <kdebug.h>
|
||||
#include <krootpixmap.h>
|
||||
|
||||
|
||||
KomposeFullscreenWidget::KomposeFullscreenWidget( int displayType, KomposeLayout *l )
|
||||
: KomposeTaskContainerWidget( -1, 0, l ),
|
||||
type(displayType)
|
||||
{
|
||||
// if ( QT_VERSION < 0x030300 )
|
||||
|
||||
/* use showMaximized instead of setWindowState to make it compile on qt 3.1 or whatever */
|
||||
// showMaximized();
|
||||
// KWin::setState( winId(), NET::KeepAbove );
|
||||
|
||||
// Set Desktop background as our background
|
||||
setBackgroundMode( Qt::FixedPixmap );
|
||||
// setBackgroundPixmap(*(KomposeGlobal::instance()->getDesktopBgPixmap()));
|
||||
rootpix = new KRootPixmap (this);
|
||||
rootpix->start();
|
||||
initMenu();
|
||||
initView();
|
||||
//showFullScreen();
|
||||
|
||||
// Alternate showFullscreen
|
||||
setWindowState(windowState() | WindowFullScreen);
|
||||
//setWFlags(WStyle_NoBorder);
|
||||
|
||||
kdDebug() << KomposeSettings::instance()->getViewScreen() << endl;
|
||||
if (KomposeSettings::instance()->getViewScreen() == -1)
|
||||
setGeometry( KGlobalSettings::desktopGeometry( this ) );
|
||||
else
|
||||
{
|
||||
QDesktopWidget deskwidget;
|
||||
QRect deskRect = deskwidget.screenGeometry(KomposeSettings::instance()->getViewScreen());
|
||||
setGeometry(deskRect);
|
||||
kdDebug() << deskRect << endl;
|
||||
}
|
||||
|
||||
if (!isTopLevel())
|
||||
QApplication::sendPostedEvents(this, QEvent::ShowFullScreen);
|
||||
setActiveWindow();
|
||||
|
||||
KWin::setOnAllDesktops( winId(), true );
|
||||
}
|
||||
|
||||
KomposeFullscreenWidget::~KomposeFullscreenWidget()
|
||||
{
|
||||
menu->deleteLater();
|
||||
}
|
||||
|
||||
|
||||
void KomposeFullscreenWidget::initMenu()
|
||||
{
|
||||
menu = new KPopupMenu();
|
||||
|
||||
KomposeGlobal::instance()->getActShowWorldView()->plug(menu);
|
||||
KomposeGlobal::instance()->getActShowVirtualDesktopView()->plug(menu);
|
||||
KomposeGlobal::instance()->getActShowCurrentDesktopView()->plug(menu);
|
||||
menu->insertSeparator();
|
||||
KomposeGlobal::instance()->getActPreferencesDialog()->plug(menu);
|
||||
KomposeGlobal::instance()->getActConfigGlobalShortcuts()->plug(menu);
|
||||
KomposeGlobal::instance()->getActAboutDlg()->plug(menu);
|
||||
//menu->insertSeparator();
|
||||
//KomposeGlobal::instance()->getActQuit()->plug(menu);
|
||||
}
|
||||
|
||||
|
||||
void KomposeFullscreenWidget::destroyChildWidgets()
|
||||
{
|
||||
setUpdatesEnabled( false );
|
||||
KomposeWidget *child;
|
||||
QPtrListIterator<KomposeWidget> it( *(layout->getManagedWidgets()));
|
||||
while ( (child = it.current()) != 0 )
|
||||
{
|
||||
++it;
|
||||
layout->remove(child);
|
||||
dynamic_cast<QWidget*>(child)->deleteLater();
|
||||
}
|
||||
setUpdatesEnabled( true );
|
||||
kdDebug() << "KomposeFullscreenWidget::destroyChildWidgets() - all children destroyed" << endl;
|
||||
}
|
||||
|
||||
void KomposeFullscreenWidget::initView()
|
||||
{
|
||||
setCursor( KCursor::waitCursor() );
|
||||
|
||||
destroyChildWidgets();
|
||||
|
||||
if ( type == KOMPOSEDISPLAY_VIRTUALDESKS )
|
||||
{
|
||||
disconnect( KomposeTaskManager::instance(), SIGNAL( newTask( KomposeTask* ) ), this, SLOT( createTaskWidget( KomposeTask* ) ) );
|
||||
layout->setType( TLAYOUT_TASKCONTAINERS );
|
||||
setDesktop( -2 );
|
||||
createDesktopWidgets();
|
||||
}
|
||||
else if ( type == KOMPOSEDISPLAY_WORLD )
|
||||
{
|
||||
layout->setType( TLAYOUT_GENERIC );
|
||||
setDesktop( -1 );
|
||||
createTaskWidgets();
|
||||
connect( KomposeTaskManager::instance(), SIGNAL( newTask( KomposeTask* ) ), this, SLOT( createTaskWidget( KomposeTask* ) ) );
|
||||
}
|
||||
else if ( type == KOMPOSEDISPLAY_CURRENTDESK )
|
||||
{
|
||||
layout->setType( TLAYOUT_GENERIC );
|
||||
setDesktop( KomposeViewManager::instance()->getDesktopBeforeSnaps() );
|
||||
createTaskWidgets();
|
||||
connect( KomposeTaskManager::instance(), SIGNAL( newTask( KomposeTask* ) ), this, SLOT( createTaskWidget( KomposeTask* ) ) );
|
||||
}
|
||||
|
||||
unsetCursor();
|
||||
}
|
||||
|
||||
void KomposeFullscreenWidget::createDesktopWidgets()
|
||||
{
|
||||
kdDebug() << "KomposeFullscreenWidget::createDesktopWidgets()" << endl;
|
||||
// Create a Widget for every desktop
|
||||
for (int i=0; i < KomposeTaskManager::instance()->getNumDesktops(); ++i)
|
||||
{
|
||||
//int row = i / 2;
|
||||
//int col = i % 2;
|
||||
//kdDebug() << "rc %d %d", row, col);
|
||||
KomposeDesktopWidget *desktop = new KomposeDesktopWidget(i, this );
|
||||
connect(desktop, SIGNAL(contentsChanged()), layout, SLOT(arrangeLayout()) );
|
||||
desktop->show();
|
||||
}
|
||||
}
|
||||
|
||||
void KomposeFullscreenWidget::mouseReleaseEvent (QMouseEvent * )
|
||||
{}
|
||||
|
||||
void KomposeFullscreenWidget::mousePressEvent ( QMouseEvent * e )
|
||||
{
|
||||
if ( !rect().contains( e->pos() ) )
|
||||
return;
|
||||
|
||||
switch ( e->button() )
|
||||
{
|
||||
case LeftButton:
|
||||
break;
|
||||
case MidButton:
|
||||
// fall through
|
||||
case RightButton:
|
||||
menu->popup( e->globalPos() );
|
||||
break;
|
||||
default:
|
||||
// nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void KomposeFullscreenWidget::keyReleaseEvent ( QKeyEvent * e )
|
||||
{
|
||||
if ( e->key() == Qt::Key_Escape )
|
||||
{
|
||||
kdDebug() << "KomposeFullscreenWidget::keyReleaseEvent - Esc key pressed - Closing view" << endl;
|
||||
KomposeViewManager::instance()->closeCurrentView();
|
||||
e->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
kdDebug() << "KomposeFullscreenWidget::keyReleaseEvent - ignored..." << endl;
|
||||
e->ignore();
|
||||
}
|
||||
KomposeTaskContainerWidget::keyReleaseEvent(e);
|
||||
}
|
||||
|
||||
int KomposeFullscreenWidget::getHeightForWidth ( int w ) const
|
||||
{
|
||||
return (int)(((double)w / (double)width()) * (double)height());
|
||||
}
|
||||
|
||||
int KomposeFullscreenWidget::getWidthForHeight ( int h ) const
|
||||
{
|
||||
return (int)(((double)h / (double)height()) * (double)width());
|
||||
}
|
||||
|
||||
double KomposeFullscreenWidget::getAspectRatio()
|
||||
{
|
||||
return (double)width() / (double)height();
|
||||
}
|
||||
|
||||
// void KomposeFullscreenWidget::paintEvent ( QPaintEvent * )
|
||||
// {
|
||||
// QPainter p( this );
|
||||
// p.drawPixmap(rect(), *(KomposeGlobal::instance()->getDesktopBgPixmap()));
|
||||
// p.end();
|
||||
// }
|
||||
|
||||
|
||||
#include "komposefullscreenwidget.moc"
|
@ -0,0 +1,61 @@
|
||||
//
|
||||
// C++ Interface: komposefullscreenwidget
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#ifndef KOMPOSEFULLSCREENWIDGET_H
|
||||
#define KOMPOSEFULLSCREENWIDGET_H
|
||||
|
||||
|
||||
#include "komposetaskcontainerwidget.h"
|
||||
#include "komposesettings.h"
|
||||
|
||||
|
||||
class KRootPixmap;
|
||||
class KomposeDesktopWidget;
|
||||
class KPopupMenu;
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeFullscreenWidget : public KomposeTaskContainerWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KomposeFullscreenWidget( int displayType = KOMPOSEDISPLAY_VIRTUALDESKS ,KomposeLayout *l = 0 );
|
||||
|
||||
virtual ~KomposeFullscreenWidget();
|
||||
|
||||
int getHeightForWidth( int w ) const;
|
||||
int getWidthForHeight( int h ) const;
|
||||
double getAspectRatio();
|
||||
|
||||
void setType( int t ) { type = t; initView(); }
|
||||
int getType() { return type; }
|
||||
|
||||
protected:
|
||||
void initView();
|
||||
void initMenu();
|
||||
void createDesktopWidgets();
|
||||
|
||||
void mouseReleaseEvent (QMouseEvent *);
|
||||
void mousePressEvent (QMouseEvent *);
|
||||
void keyReleaseEvent ( QKeyEvent * e );
|
||||
// void paintEvent ( QPaintEvent * );
|
||||
|
||||
void destroyChildWidgets();
|
||||
// virtual void closeEvent ( QCloseEvent * e );
|
||||
|
||||
private:
|
||||
int type;
|
||||
KPopupMenu *menu;
|
||||
KRootPixmap *rootpix;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,116 @@
|
||||
//
|
||||
// C++ Implementation: komposegldesktopwidget
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <oisch@sourceforge.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposegldesktopwidget.h"
|
||||
|
||||
#include "komposetask.h"
|
||||
#include "komposegltaskwidget.h"
|
||||
#include "komposetaskmanager.h"
|
||||
|
||||
#include <qdesktopwidget.h>
|
||||
#include <qobjectlist.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
#include <GL/gl.h>
|
||||
|
||||
KomposeGLDesktopWidget::KomposeGLDesktopWidget(int desktop, QObject *parent, const char *name)
|
||||
: KomposeGLWidget( parent ),
|
||||
deskNum( desktop )
|
||||
{
|
||||
// Retrieve geometry
|
||||
QDesktopWidget *deskwidget = new QDesktopWidget();
|
||||
deskRect = deskwidget->availableGeometry();
|
||||
delete deskwidget;
|
||||
|
||||
createTaskWidgets();
|
||||
|
||||
//connect( KomposeTaskManager::instance(), SIGNAL( newTask( KomposeTask* ) ), this, SLOT( createTaskWidget( KomposeTask* ) ) );
|
||||
}
|
||||
|
||||
|
||||
KomposeGLDesktopWidget::~KomposeGLDesktopWidget()
|
||||
{}
|
||||
|
||||
void KomposeGLDesktopWidget::createTaskWidgets()
|
||||
{
|
||||
TaskList tl = KomposeTaskManager::instance()->getTasks();
|
||||
qDebug("KomposeGLDesktopWidget::createTaskWidgets() on %d tasks", tl.count());
|
||||
QPtrListIterator<KomposeTask> it( tl );
|
||||
KomposeTask *task;
|
||||
while ( (task = it.current()) != 0 )
|
||||
{
|
||||
++it;
|
||||
Q_CHECK_PTR(task);
|
||||
createTaskWidget( task );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void KomposeGLDesktopWidget::createTaskWidget( KomposeTask* task )
|
||||
{
|
||||
if (deskNum == task->onDesktop()-1 )
|
||||
{
|
||||
qDebug("KomposeGLDesktopWidget::createTaskWidget()" );
|
||||
KomposeGLTaskWidget *taskwidget = new KomposeGLTaskWidget( task, this, 0, "" );
|
||||
}
|
||||
}
|
||||
|
||||
int KomposeGLDesktopWidget::getHeightForWidth( int w ) const
|
||||
{
|
||||
qDebug("KomposeGLDesktopWidget::getHeightForWidth()");
|
||||
return ((double)w / (double)deskRect.width()) * deskRect.height();
|
||||
}
|
||||
|
||||
int KomposeGLDesktopWidget::getWidthForHeight( int h ) const
|
||||
{
|
||||
qDebug("KomposeGLDesktopWidget::getWidthForHeight()");
|
||||
return ((double)h / (double)deskRect.height()) * deskRect.width();
|
||||
}
|
||||
|
||||
double KomposeGLDesktopWidget::getAspectRatio()
|
||||
{
|
||||
qDebug("KomposeGLDesktopWidget::getAspectRatio()");
|
||||
return (double)deskRect.width() / (double)deskRect.height();
|
||||
}
|
||||
|
||||
|
||||
void KomposeGLDesktopWidget::draw()
|
||||
{
|
||||
KomposeGLWidget::draw();
|
||||
qDebug("KomposeGLDesktopWidget::draw() - %d,%d %dx%d", getRect().x(), getRect().y(), getRect().width(), getRect().height());
|
||||
glColor3f(0.0f, 0.0f, 1.0f);
|
||||
|
||||
glBegin( GL_QUADS );
|
||||
glVertex2i( getRect().x() + getRect().width(), getRect().y() );
|
||||
glVertex2i( getRect().x(), getRect().y() );
|
||||
glVertex2i( getRect().x(), getRect().y() + getRect().height() );
|
||||
glVertex2i( getRect().x() + getRect().width(), getRect().y() + getRect().height() );
|
||||
glEnd();
|
||||
|
||||
// Draw Task Widgets
|
||||
QPtrListIterator<KomposeGLWidget> it( list );
|
||||
|
||||
// Check or empty list
|
||||
if (it.count() == 0)
|
||||
{
|
||||
qDebug("KomposeGLDesktopWidget::draw() - empty list... skipping!");
|
||||
return;
|
||||
}
|
||||
|
||||
KomposeGLWidget *widget;
|
||||
while ( (widget = (KomposeGLWidget*)it.current()) != 0 )
|
||||
{
|
||||
++it;
|
||||
widget->draw();
|
||||
}
|
||||
}
|
||||
|
||||
#include "komposegldesktopwidget.moc"
|
@ -0,0 +1,176 @@
|
||||
//
|
||||
// C++ Implementation: komposeglwidget
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <oisch@sourceforge.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposeglfullscreenwidget.h"
|
||||
|
||||
#include "komposelayout.h"
|
||||
#include "komposetaskmanager.h"
|
||||
#include "komposegldesktopwidget.h"
|
||||
#include <kdebug.h>
|
||||
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
KomposeGLFullscreenWidget::KomposeGLFullscreenWidget(QWidget *parent, const char *name) :
|
||||
QGLWidget(parent, name)
|
||||
{
|
||||
qDebug("KomposeGLFullscreenWidget::KomposeGLFullscreenWidget()");
|
||||
layout = new KomposeLayout( this );
|
||||
|
||||
setWindowState(Qt::WindowMaximized | Qt::WindowActive);
|
||||
showFullScreen();
|
||||
|
||||
createDesktopWidgets();
|
||||
}
|
||||
|
||||
|
||||
KomposeGLFullscreenWidget::~KomposeGLFullscreenWidget()
|
||||
{}
|
||||
|
||||
void KomposeGLFullscreenWidget::createDesktopWidgets()
|
||||
{
|
||||
// Create a Widget for every desktop
|
||||
for (int i=0; i < KomposeTaskManager::instance()->getNumDesktops(); ++i)
|
||||
{
|
||||
int row = i / 2;
|
||||
int col = i % 2;
|
||||
//qDebug("rc %d %d", row, col);
|
||||
desktop[i] = new KomposeGLDesktopWidget(i, this);
|
||||
layout->add(dynamic_cast<KomposeWidgetInterface*>(desktop[i]));
|
||||
}
|
||||
}
|
||||
|
||||
void KomposeGLFullscreenWidget::initializeGL()
|
||||
{
|
||||
// Set up the rendering context, define display lists etc.:
|
||||
if( !format().hasOpenGL() )
|
||||
{
|
||||
qWarning( "KomposeGLFullscreenWidget::initializeGL() - OpenGL not supported!" );
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !format().doubleBuffer() )
|
||||
{
|
||||
qWarning( "KomposeGLFullscreenWidget::initializeGL() - Direct rendering enabled !" );
|
||||
}
|
||||
// glShadeModel(GL_SMOOTH);
|
||||
//
|
||||
// format().setDirectRendering( true );
|
||||
// format().setDoubleBuffer( true );
|
||||
// format().setRgba( true );
|
||||
// format().setDepth ( false );
|
||||
// format().setAccum( false );
|
||||
// format().setStencil( false );
|
||||
// format().setAlpha( true );
|
||||
|
||||
// Alpha blend
|
||||
// glEnable( GL_BLEND );
|
||||
// glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||
|
||||
// All smoothing stuff
|
||||
// glEnable( GL_POLYGON_SMOOTH );
|
||||
// glHint( GL_POLYGON_SMOOTH_HINT, GL_FASTEST );
|
||||
// glEnable( GL_POINT_SMOOTH );
|
||||
// glHint( GL_POINT_SMOOTH_HINT, GL_FASTEST );
|
||||
// glEnable( GL_LINE_SMOOTH );
|
||||
// glHint( GL_LINE_SMOOTH_HINT, GL_FASTEST );
|
||||
|
||||
// Lighting and Depth Test
|
||||
glDisable( GL_LIGHTING );
|
||||
// glDisable( GL_DEPTH_TEST );
|
||||
// glDisable( GL_NORMALIZE );
|
||||
|
||||
glClearColor( 0.0, 0.0, 0.0, 0.0 );
|
||||
glClear( GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_ACCUM_BUFFER_BIT );
|
||||
|
||||
/*! Setup sizes */
|
||||
// glLineWidth( 1.0 );
|
||||
// glPointSize( 2.0 );
|
||||
|
||||
setOrthographicProjection();
|
||||
}
|
||||
|
||||
void KomposeGLFullscreenWidget::resizeGL( int w, int h )
|
||||
{
|
||||
// setup viewport, projection etc.:
|
||||
setOrthographicProjection();
|
||||
layout->arrangeLayout();
|
||||
}
|
||||
|
||||
|
||||
/*! draw OpenGL scene ( called from Qt ) */
|
||||
void KomposeGLFullscreenWidget::paintGL()
|
||||
{
|
||||
qDebug("KomposeGLFullscreenWidget::paintGL()");
|
||||
|
||||
glPushMatrix();
|
||||
|
||||
// clears the color buffer (this will set the window to black)
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
// Draw Desktop Widgets
|
||||
for (int i=0; i < KomposeTaskManager::instance()->getNumDesktops(); ++i)
|
||||
{
|
||||
// FIXME: Make desktop arrays dynamic or at least avoid KomposeTaskManager::instance()->getNumDesktops() here
|
||||
desktop[i]->draw();
|
||||
}
|
||||
|
||||
glFlush();
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
|
||||
void KomposeGLFullscreenWidget::setOrthographicProjection()
|
||||
{
|
||||
qDebug("KomposeGLFullscreenWidget::setOrthographicProjection() - %dx%d", width(), height());
|
||||
glViewport( 0, 0, (GLint)width(), (GLint)height() );
|
||||
// switch to projection mode
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
// reset matrix
|
||||
glLoadIdentity();
|
||||
// set a 2D orthographic projection
|
||||
gluOrtho2D(0.0, (GLdouble)width(), 0.0, (GLdouble)height());
|
||||
// invert the y axis, down is positive
|
||||
glScalef(1, -1, 1);
|
||||
// mover the origin from the bottom left corner
|
||||
// to the upper left corner
|
||||
glTranslatef(0, -height(), 0);
|
||||
glMatrixMode(GL_MODELVIEW);;
|
||||
}
|
||||
|
||||
// Redirect these functions to QGLWidget
|
||||
|
||||
void KomposeGLFullscreenWidget::setGeom ( const QRect &rect )
|
||||
{
|
||||
QGLWidget::setGeometry( rect );
|
||||
}
|
||||
|
||||
void KomposeGLFullscreenWidget::setGeom ( const QSize &size )
|
||||
{
|
||||
QGLWidget::resize( size );
|
||||
}
|
||||
|
||||
QSize KomposeGLFullscreenWidget::getSize() const
|
||||
{
|
||||
return QGLWidget::size();
|
||||
}
|
||||
|
||||
QRect KomposeGLFullscreenWidget::getRect() const
|
||||
{
|
||||
return QGLWidget::rect();
|
||||
}
|
||||
|
||||
void KomposeGLFullscreenWidget::removeChildWidget( KomposeWidgetInterface* obj )
|
||||
{
|
||||
QGLWidget::removeChild((QObject *) obj);
|
||||
}
|
||||
|
||||
#include "komposeglfullscreenwidget.moc"
|
@ -0,0 +1,375 @@
|
||||
//
|
||||
// C++ Implementation: komposeglobal
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposeglobal.h"
|
||||
|
||||
|
||||
#include "komposetaskmanager.h"
|
||||
#include "komposeviewmanager.h"
|
||||
#include "komposesettings.h"
|
||||
#include "komposesystray.h"
|
||||
|
||||
#include <qtimer.h>
|
||||
|
||||
#include <kapplication.h>
|
||||
#include <kpopupmenu.h>
|
||||
#include <kaction.h>
|
||||
#include <kactioncollection.h>
|
||||
#include <klocale.h>
|
||||
#include <kiconloader.h>
|
||||
#include <kaccel.h>
|
||||
#include <kkeydialog.h>
|
||||
#include <kaboutapplication.h>
|
||||
#include <ksharedpixmap.h>
|
||||
#include <kwinmodule.h>
|
||||
#include <kdebug.h>
|
||||
#include <dcopclient.h>
|
||||
#include <dcopref.h>
|
||||
|
||||
#include <dcopclient.h>
|
||||
|
||||
// #include those AFTER Qt-includes!
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <Imlib2.h>
|
||||
|
||||
#ifdef COMPOSITE
|
||||
#include <X11/Xatom.h>
|
||||
#include <X11/extensions/Xcomposite.h>
|
||||
#include <X11/extensions/Xdamage.h>
|
||||
#include <X11/extensions/Xrender.h>
|
||||
#endif
|
||||
|
||||
static KomposeGlobal* globalInstance = 0;
|
||||
Display *disp;
|
||||
|
||||
static QString wallpaperForDesktop(int desktop)
|
||||
{
|
||||
return DCOPRef("kdesktop", "KBackgroundIface").call("currentWallpaper", desktop);
|
||||
}
|
||||
|
||||
/**
|
||||
* KomposeSettings is a singleton
|
||||
*/
|
||||
KomposeGlobal* KomposeGlobal::instance()
|
||||
{
|
||||
if ( !globalInstance )
|
||||
{
|
||||
kdDebug() << "KomposeSettings::instance() - Creating Singleton instance" << endl;
|
||||
KomposeGlobal *settiglobalInstance = new KomposeGlobal();
|
||||
}
|
||||
return globalInstance;
|
||||
}
|
||||
|
||||
KomposeGlobal::KomposeGlobal(QObject *parent, const char *name)
|
||||
: QObject(parent, name),
|
||||
aboutDialogOpen(0),
|
||||
hideSystray( false ),
|
||||
singleShot( false ),
|
||||
xcomposite(0),
|
||||
damageEvent(0)
|
||||
{
|
||||
globalInstance = this;
|
||||
kwin_module = new KWinModule(); //FIXME: only needed for sharedpixmap :(
|
||||
currentDesktop = kwin_module->currentDesktop();
|
||||
|
||||
desktopBgPixmap = new KSharedPixmap;
|
||||
connect(desktopBgPixmap, SIGNAL(done(bool)), SLOT(slotDone(bool)));
|
||||
initSharedPixmaps();
|
||||
initCompositeExt();
|
||||
initImlib();
|
||||
|
||||
connect( KomposeSettings::instance(), SIGNAL(settingsChanged()), this, SLOT(slotConfigChanged()) );
|
||||
}
|
||||
|
||||
KomposeGlobal::~KomposeGlobal()
|
||||
{
|
||||
delete systray;
|
||||
delete actionCollection;
|
||||
delete actConfigGlobalShortcuts;
|
||||
delete actPreferencesDialog;
|
||||
delete actShowVirtualDesktopView;
|
||||
delete actShowCurrentDesktopView;
|
||||
delete actShowWorldView;
|
||||
delete actAboutDlg;
|
||||
delete actQuit;
|
||||
delete desktopBgPixmap;
|
||||
}
|
||||
|
||||
void KomposeGlobal::slotConfigChanged( )
|
||||
{
|
||||
initCompositeExt();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gives us control about when the GUI should appear. Called from outside
|
||||
* Called from outside as KomposeGlobal is a singleton that can be instantiated at any time
|
||||
*/
|
||||
void KomposeGlobal::initGui()
|
||||
{
|
||||
// Initialise the Singleton instances
|
||||
KomposeSettings::instance();
|
||||
KomposeViewManager::instance();
|
||||
KomposeTaskManager::instance();
|
||||
|
||||
// Create DCop Client
|
||||
kapp->dcopClient()->setDefaultObject( "KomposeTaskMgrDcopIface" );
|
||||
|
||||
initActions();
|
||||
|
||||
if ( !hideSystray && !singleShot )
|
||||
{
|
||||
// Create systray
|
||||
systray = new KomposeSysTray();
|
||||
kapp->setMainWidget( systray );
|
||||
systray->currentDesktopChanged( currentDesktop );
|
||||
|
||||
actionCollection->setWidget( systray );
|
||||
systray->show();
|
||||
}
|
||||
else
|
||||
kdDebug() << "KomposeGlobal::initGui() - Hiding systray icon" << endl;
|
||||
|
||||
if ( singleShot )
|
||||
{
|
||||
kdDebug() << "KomposeGlobal::initGui() - SingleShot has been selected" << endl;
|
||||
KomposeViewManager::instance()->createView();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Initialise Kompose's global actions. Retrieve these via the getters in KomposeGlobal
|
||||
*/
|
||||
void KomposeGlobal::initActions()
|
||||
{
|
||||
actionCollection = new KActionCollection( (QWidget*)0 );
|
||||
|
||||
// Actions
|
||||
actQuit = KStdAction::quit( kapp, SLOT(quit()), actionCollection );
|
||||
actShowWorldView = new KAction(i18n("Komposé (ungrouped)"), "kompose_ungrouped",
|
||||
0,
|
||||
KomposeViewManager::instance(), SLOT(createWorldView()),
|
||||
actionCollection, "showWorldView");
|
||||
actShowVirtualDesktopView = new KAction(i18n("Komposé (grouped by virtual desktops)"), "kompose_grouped_by_virtual_desktop",
|
||||
0,
|
||||
KomposeViewManager::instance(), SLOT(createVirtualDesktopView()),
|
||||
actionCollection, "showVirtualDesktopView");
|
||||
actShowCurrentDesktopView = new KAction(i18n("Komposé (current virtual desktop)"), "kompose_current_virtual_desktop",
|
||||
0,
|
||||
KomposeViewManager::instance(), SLOT(createCurrentDesktopView()),
|
||||
actionCollection, "showCurrentDesktopView");
|
||||
|
||||
actPreferencesDialog = KStdAction::preferences( KomposeSettings::instance(), SLOT(showPreferencesDlg()), actionCollection );
|
||||
|
||||
actConfigGlobalShortcuts = KStdAction::keyBindings(this, SLOT(showGlobalShortcutsSettingsDialog()),
|
||||
actionCollection, "options_configure_global_keybinding");
|
||||
actConfigGlobalShortcuts->setText(i18n("Configure &Global Shortcuts..."));
|
||||
actAboutDlg = new KAction(i18n("About Komposé"), "kompose",
|
||||
0,
|
||||
this, SLOT(showAboutDlg()),
|
||||
actionCollection, "showAboutDlg");
|
||||
}
|
||||
|
||||
void KomposeGlobal::initSharedPixmaps()
|
||||
{
|
||||
// Whenever the background pixmap changes we'll have to reload it:
|
||||
//connect(kwin_module, SIGNAL(windowChanged(WId, unsigned int)), SLOT(desktopChanged(WId, unsigned int)));
|
||||
connect(kwin_module, SIGNAL(currentDesktopChanged(int)), SLOT(slotDesktopChanged(int)));
|
||||
connect(kapp, SIGNAL(backgroundChanged(int)), SLOT(slotBackgroundChanged(int)));
|
||||
|
||||
enablePixmapExports();
|
||||
// When Kompose is started by session management the bg shared pixmap may not be available yet
|
||||
if (!desktopBgPixmap->isAvailable( pixmapName(1) ))
|
||||
{
|
||||
qWarning("KomposeGlobal::initSharedPixmaps() - Pixmap not available");
|
||||
//enablePixmapExports();
|
||||
QTimer::singleShot( 1000, this, SLOT( initSharedPixmaps() ) );
|
||||
//initSharedPixmaps();
|
||||
//return;
|
||||
}
|
||||
|
||||
kdDebug() << "KomposeGlobal::initSharedPixmaps()" << endl;
|
||||
refreshSharedPixmaps();
|
||||
}
|
||||
|
||||
void KomposeGlobal::slotDesktopChanged(int desktop)
|
||||
{
|
||||
systray->currentDesktopChanged( desktop );
|
||||
if (desktop != -2)
|
||||
{
|
||||
// -2 is for manual loading, everything else enables the following checks:
|
||||
if (wallpaperForDesktop(currentDesktop) == wallpaperForDesktop(desktop) &&
|
||||
!wallpaperForDesktop(currentDesktop).isNull())
|
||||
return;
|
||||
|
||||
if ( !(pixmapName(currentDesktop) != pixmapName(desktop)) )
|
||||
return;
|
||||
}
|
||||
|
||||
currentDesktop = kwin_module->currentDesktop();
|
||||
refreshSharedPixmaps();
|
||||
}
|
||||
|
||||
void KomposeGlobal::slotBackgroundChanged(int)
|
||||
{
|
||||
refreshSharedPixmaps();
|
||||
}
|
||||
|
||||
void KomposeGlobal::refreshSharedPixmaps()
|
||||
{
|
||||
desktopBgPixmap->loadFromShared( pixmapName(currentDesktop) );
|
||||
}
|
||||
|
||||
QString KomposeGlobal::pixmapName(int desk)
|
||||
{
|
||||
// To simplify things we take the background of the first desktop
|
||||
QString pattern = QString("DESKTOP%1");
|
||||
int screen_number = DefaultScreen(qt_xdisplay());
|
||||
if (screen_number)
|
||||
{
|
||||
pattern = QString("SCREEN%1-DESKTOP").arg(screen_number) + "%1";
|
||||
}
|
||||
return pattern.arg( desk );
|
||||
}
|
||||
|
||||
void KomposeGlobal::slotDone(bool success)
|
||||
{
|
||||
if (!success)
|
||||
{
|
||||
kdDebug() << "KomposeGlobal::slotDone() - loading of desktop background failed.\n" << endl;
|
||||
//QTimer::singleShot( 1000, this, SLOT( initSharedPixmaps() ) );
|
||||
}
|
||||
}
|
||||
|
||||
void KomposeGlobal::enablePixmapExports()
|
||||
{
|
||||
#ifdef Q_WS_X11
|
||||
kdDebug() << "KomposeGlobal::enablePixmapExports()" << endl;
|
||||
DCOPClient *client = kapp->dcopClient();
|
||||
if (!client->isAttached())
|
||||
client->attach();
|
||||
QByteArray data;
|
||||
QDataStream args( data, IO_WriteOnly );
|
||||
args << 1;
|
||||
|
||||
QCString appname( "kdesktop" );
|
||||
int screen_number = DefaultScreen(qt_xdisplay());
|
||||
if ( screen_number )
|
||||
appname.sprintf("kdesktop-screen-%d", screen_number );
|
||||
|
||||
client->send( appname, "KBackgroundIface", "setExport(int)", data );
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Global Shortcuts Dialog for Kompose
|
||||
*/
|
||||
void KomposeGlobal::showGlobalShortcutsSettingsDialog()
|
||||
{
|
||||
KKeyDialog::configure( KomposeSettings::instance()->getGlobalAccel() );
|
||||
KomposeSettings::instance()->writeConfig();
|
||||
}
|
||||
|
||||
/**
|
||||
* Show About Dialog for Kompose
|
||||
*/
|
||||
void KomposeGlobal::showAboutDlg()
|
||||
{
|
||||
aboutDialogOpen = true;
|
||||
KAboutApplication* kabout = new KAboutApplication();
|
||||
kabout->exec();
|
||||
delete kabout;
|
||||
aboutDialogOpen = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialise Imlib2.
|
||||
* Should only be called by the KomposeGlobal constructor
|
||||
*/
|
||||
void KomposeGlobal::initImlib()
|
||||
{
|
||||
Display *disp;
|
||||
Visual *vis;
|
||||
Colormap cm;
|
||||
//int screen;
|
||||
disp = QPaintDevice::x11AppDisplay();
|
||||
vis = DefaultVisual(disp, DefaultScreen(disp));
|
||||
cm = DefaultColormap(disp, DefaultScreen(disp));
|
||||
// context = imlib_context_new();
|
||||
|
||||
// imlib_context_push(d->context);
|
||||
imlib_set_cache_size(0);
|
||||
imlib_set_color_usage(128);
|
||||
imlib_context_set_dither(1);
|
||||
imlib_context_set_display(disp);
|
||||
imlib_context_set_visual(vis);
|
||||
imlib_context_set_colormap(cm);
|
||||
kdDebug() << "KomposeGlobal::initImlib() - Imlib2 support enabled." << endl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect and initialise the XComposite extension.
|
||||
* Should only be called by the KomposeGlobal constructor
|
||||
*/
|
||||
void KomposeGlobal::initCompositeExt()
|
||||
{
|
||||
if ( !(!xcomposite && KomposeSettings::instance()->getUseComposite()) )
|
||||
return;
|
||||
|
||||
xcomposite = false;
|
||||
#ifdef COMPOSITE
|
||||
// Check for XComposite
|
||||
Display *dpy = QPaintDevice::x11AppDisplay();
|
||||
|
||||
int event_base, error_base;
|
||||
if ( XCompositeQueryExtension( dpy, &event_base, &error_base ) )
|
||||
{
|
||||
// If we get here the server supports the extension
|
||||
xcomposite = true;
|
||||
|
||||
// XComposite version check
|
||||
int major = 1, minor = 1; // The highest version we support
|
||||
XCompositeQueryVersion( dpy, &major, &minor );
|
||||
// major and minor will now contain the version the server supports.
|
||||
if (!(major > 0 || minor >= 2))
|
||||
{
|
||||
kdDebug() << "KomposeGlobal::initCompositeExt() - XComposite doesn't allow NamePixmap requests! - Disabling XComposite support" << endl;
|
||||
// TODO: create a namewindowpixbool to make it work with composite 0.1
|
||||
xcomposite = false;
|
||||
}
|
||||
|
||||
// XRender version check
|
||||
int renderEvent, renderError;
|
||||
if (!XRenderQueryExtension (dpy, &renderEvent, &renderError))
|
||||
{
|
||||
kdDebug() << "KomposeGlobal::initCompositeExt() - XRender not available! - Disabling XComposite support" << endl;
|
||||
}
|
||||
|
||||
//XDamage version check
|
||||
//int damageEvent, damageError; // The event base is important here
|
||||
if (!XDamageQueryExtension( dpy, &damageEvent, &damageError ))
|
||||
{
|
||||
kdDebug() << "KomposeGlobal::initCompositeExt() - XDamage is not available! - Disabling XComposite support" << endl;
|
||||
xcomposite = false;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
xcomposite = false;
|
||||
#endif
|
||||
|
||||
if ( xcomposite )
|
||||
kdDebug() << "KomposeGlobal::initCompositeExt() - XComposite extension found and enabled." << endl;
|
||||
}
|
||||
|
||||
|
||||
#include "komposeglobal.moc"
|
@ -0,0 +1,109 @@
|
||||
//
|
||||
// C++ Interface: komposeglobal
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#ifndef KOMPOSEGLOBAL_H
|
||||
#define KOMPOSEGLOBAL_H
|
||||
|
||||
class KomposeSysTray;
|
||||
|
||||
#include <qobject.h>
|
||||
#include <qstring.h>
|
||||
|
||||
class KPopupMenu;
|
||||
class KActionCollection;
|
||||
class KAction;
|
||||
class KSharedPixmap;
|
||||
class KWinModule;
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#if defined(Q_WS_X11) && defined(HAVE_XCOMPOSITE) && defined(HAVE_XDAMAGE) && QT_VERSION >= 0x030300
|
||||
# define COMPOSITE
|
||||
#endif
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeGlobal : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
protected:
|
||||
KomposeGlobal(QObject *parent = 0, const char *name = 0);
|
||||
|
||||
~KomposeGlobal();
|
||||
|
||||
public:
|
||||
static KomposeGlobal *instance();
|
||||
KomposeSysTray* getSysTray() { return systray; }
|
||||
void initGui();
|
||||
|
||||
bool hasAboutDialogOpen() { return aboutDialogOpen; }
|
||||
void setHideSystray( bool b ) { hideSystray = b; }
|
||||
void setSingleShot( bool b ) { singleShot = b; }
|
||||
bool getSingleShot() { return singleShot; }
|
||||
bool hasXcomposite() { return xcomposite; }
|
||||
int getDamageEvent() { return damageEvent; }
|
||||
|
||||
// Action getters
|
||||
KAction *getActConfigGlobalShortcuts() { return actConfigGlobalShortcuts; }
|
||||
KAction *getActPreferencesDialog() { return actPreferencesDialog; }
|
||||
KAction *getActShowVirtualDesktopView() { return actShowVirtualDesktopView; }
|
||||
KAction *getActShowCurrentDesktopView() { return actShowCurrentDesktopView; }
|
||||
KAction *getActShowWorldView() { return actShowWorldView; }
|
||||
KAction *getActAboutDlg() { return actAboutDlg; }
|
||||
KAction *getActQuit() { return actQuit; }
|
||||
|
||||
const KSharedPixmap *getDesktopBgPixmap() const { return desktopBgPixmap; }
|
||||
|
||||
protected:
|
||||
void initActions();
|
||||
void initImlib();
|
||||
|
||||
protected slots:
|
||||
void initSharedPixmaps();
|
||||
QString pixmapName(int desk);
|
||||
void slotDone(bool success);
|
||||
void enablePixmapExports();
|
||||
void slotDesktopChanged(int desktop);
|
||||
void slotBackgroundChanged(int desktop);
|
||||
void refreshSharedPixmaps();
|
||||
|
||||
void slotConfigChanged();
|
||||
void initCompositeExt();
|
||||
void showGlobalShortcutsSettingsDialog();
|
||||
void showAboutDlg();
|
||||
|
||||
private:
|
||||
bool aboutDialogOpen;
|
||||
bool hideSystray;
|
||||
bool singleShot;
|
||||
bool xcomposite;
|
||||
int damageEvent, damageError;
|
||||
|
||||
KSharedPixmap *desktopBgPixmap;
|
||||
int currentDesktop;
|
||||
KomposeSysTray* systray;
|
||||
KActionCollection* actionCollection;
|
||||
|
||||
KAction *actConfigGlobalShortcuts;
|
||||
KAction *actPreferencesDialog;
|
||||
KAction *actShowVirtualDesktopView;
|
||||
KAction *actShowCurrentDesktopView;
|
||||
KAction *actShowWorldView;
|
||||
KAction *actAboutDlg;
|
||||
KAction *actQuit;
|
||||
|
||||
KWinModule* kwin_module;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,119 @@
|
||||
//
|
||||
// C++ Implementation: komposegltaskwidget
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <oisch@sourceforge.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposegltaskwidget.h"
|
||||
|
||||
#include "komposetaskmanager.h"
|
||||
#include "komposetask.h"
|
||||
#include "komposelayout.h"
|
||||
#include <kdebug.h>
|
||||
|
||||
#include <qgl.h>
|
||||
#include <qimage.h>
|
||||
|
||||
|
||||
|
||||
KomposeGLTaskWidget::KomposeGLTaskWidget(KomposeTask *t, QObject *parent, KomposeLayout *l, const char *name)
|
||||
: KomposeGLWidget(parent, l),
|
||||
task(t)
|
||||
{
|
||||
QImage img = task->getScreenshot().convertToImage();
|
||||
img = img.smoothScale( 256, 256, QImage::ScaleMin );
|
||||
tex = QGLWidget::convertToGLFormat( img );
|
||||
glGenTextures(1, &texture);
|
||||
glBindTexture(GL_TEXTURE_2D, texture);
|
||||
/* glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); // cheap scaling when image bigger than texture
|
||||
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); // cheap scaling when image smalled than texture*/
|
||||
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); // scale linearly when image bigger than texture
|
||||
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); // scale linearly when image smalled than texture
|
||||
|
||||
glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
|
||||
|
||||
glTexImage2D( GL_TEXTURE_2D, 0, 3, 256, 256, 0,
|
||||
GL_RGBA, GL_UNSIGNED_BYTE, tex.bits() );
|
||||
|
||||
|
||||
|
||||
|
||||
connect( t, SIGNAL( closed() ), this, SLOT( slotTaskDestroyed() ) );
|
||||
connect( t, SIGNAL( stateChanged() ), this, SLOT( draw() ) );
|
||||
}
|
||||
|
||||
|
||||
KomposeGLTaskWidget::~KomposeGLTaskWidget()
|
||||
{}
|
||||
|
||||
void KomposeGLTaskWidget::slotTaskDestroyed()
|
||||
{
|
||||
disconnect( task, SIGNAL( closed() ), this, SLOT( slotTaskDestroyed() ) );
|
||||
disconnect( task, SIGNAL( stateChanged() ), this, SLOT( draw() ) );
|
||||
if (KomposeTaskManager::instance()->hasActiveView())
|
||||
{
|
||||
this->parent()->removeChild( this );
|
||||
}
|
||||
}
|
||||
|
||||
int KomposeGLTaskWidget::getHeightForWidth ( int w ) const
|
||||
{
|
||||
qDebug("KomposeGLTaskWidget::getHeightForWidth()");
|
||||
return task->getHeightForWidth(w);
|
||||
}
|
||||
|
||||
int KomposeGLTaskWidget::getWidthForHeight ( int h ) const
|
||||
{
|
||||
qDebug("KomposeGLTaskWidget::getWidthForHeight()");
|
||||
return task->getWidthForHeight(h);
|
||||
}
|
||||
|
||||
double KomposeGLTaskWidget::getAspectRatio()
|
||||
{
|
||||
qDebug("KomposeGLTaskWidget::getAspectRatio()");
|
||||
return task->getAspectRatio();
|
||||
}
|
||||
|
||||
void KomposeGLTaskWidget::draw()
|
||||
{
|
||||
KomposeGLWidget::draw();
|
||||
qDebug("KomposeGLTaskWidget::draw() - %d,%d %dx%d", getRect().x(), getRect().y(), getRect().width(), getRect().height());
|
||||
glColor3f(1.0f, 0.0f, 0.0f);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, texture);
|
||||
|
||||
/* glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
|
||||
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );*/
|
||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
|
||||
glEnable( GL_TEXTURE_2D );
|
||||
|
||||
// glTexImage2D( GL_TEXTURE_2D, 0, 3, tex.width(), tex.height(), 0,
|
||||
// GL_RGBA, GL_UNSIGNED_BYTE, tex.bits() );
|
||||
// qDebug("KomposeGLTaskWidget::draw() - tex: %dx%d", tex.width(), tex.height() );
|
||||
|
||||
glBegin( GL_QUADS );
|
||||
glTexCoord2f(0.0, 0.0);
|
||||
glVertex2i( getRect().x(), getRect().y() );
|
||||
glTexCoord2f(0.0, 1.0);
|
||||
glVertex2i( getRect().x(), getRect().y() + getRect().height() );
|
||||
glTexCoord2f(1.0, 1.0);
|
||||
glVertex2i( getRect().x() + getRect().width(), getRect().y() + getRect().height() );
|
||||
glTexCoord2f(1.0, 0.0);
|
||||
glVertex2i( getRect().x() + getRect().width(), getRect().y() );
|
||||
glEnd();
|
||||
|
||||
glDisable( GL_TEXTURE_2D );
|
||||
/*
|
||||
glRasterPos2i (getRect().x(), getRect().y());
|
||||
glPixelZoom( (GLfloat)(getSize().width())/(GLfloat)(tex.width()), (GLfloat)(getSize().height())/(GLfloat)(tex.height()) );
|
||||
glDrawPixels(tex.width(), tex.height(), GL_RGBA, GL_UNSIGNED_BYTE, tex.bits() ); */
|
||||
}
|
||||
|
||||
#include "komposegltaskwidget.moc"
|
@ -0,0 +1,119 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* oisch@sourceforge.net *
|
||||
* *
|
||||
* 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 "komposeglwidget.h"
|
||||
#include "komposelayout.h"
|
||||
|
||||
#include <qtimer.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
|
||||
/*
|
||||
* The constructor accepts a custom layout, if none is specified a defaultlayout is used
|
||||
*/
|
||||
KomposeGLWidget::KomposeGLWidget(QObject *parent, KomposeLayout *l, const char *name)
|
||||
: QObject(parent)
|
||||
{
|
||||
geometry = QRect(0,0,1,1);
|
||||
if (!l)
|
||||
layout = new KomposeLayout( this );
|
||||
else
|
||||
layout = l;
|
||||
}
|
||||
|
||||
|
||||
KomposeGLWidget::~KomposeGLWidget()
|
||||
{}
|
||||
|
||||
|
||||
/*
|
||||
* Whenever a child is added to the widget it's also added to the layout
|
||||
*/
|
||||
void KomposeGLWidget::childEvent ( QChildEvent * ce )
|
||||
{
|
||||
if ( !ce->child()->inherits("KomposeGLWidget") )
|
||||
return;
|
||||
|
||||
if ( ce->inserted() )
|
||||
{
|
||||
qDebug("KomposeGLWidget::childEvent : Added widget " << ce->child()->className() << " to " << className() << endl;
|
||||
list.append( dynamic_cast<KomposeGLWidget*>(ce->child()) );
|
||||
layout->add( dynamic_cast<KomposeWidgetInterface*>(ce->child()) );
|
||||
}
|
||||
else if ( ce->removed() )
|
||||
{
|
||||
qDebug("KomposeGLWidget::childEvent : Removed widget %s from %s", ce->child()->className(), className() );
|
||||
list.remove( dynamic_cast<KomposeGLWidget*>(ce->child()) );
|
||||
layout->remove( dynamic_cast<KomposeWidgetInterface*>(ce->child()) );
|
||||
}
|
||||
|
||||
// Whenever a child is added/removed: rearrange layout
|
||||
// FIXME: sometimes widget's aren't added in time, so we have to add a short delay:
|
||||
QTimer::singleShot( 200, layout, SLOT( arrangeLayout() ) );
|
||||
}
|
||||
|
||||
/*
|
||||
* Main GL draw routine
|
||||
*/
|
||||
void KomposeGLWidget::draw()
|
||||
{
|
||||
qDebug("KomposeGLWidget::draw - Arranging layout");
|
||||
layout->arrangeLayout();
|
||||
}
|
||||
|
||||
|
||||
// Redirect these functions to QWidget
|
||||
|
||||
void KomposeGLWidget::setGeom ( const QRect &rect )
|
||||
{
|
||||
geometry = rect;
|
||||
}
|
||||
|
||||
void KomposeGLWidget::setGeom ( const QSize &size )
|
||||
{
|
||||
geometry.setSize( size );
|
||||
}
|
||||
|
||||
QSize KomposeGLWidget::getSize() const
|
||||
{
|
||||
return geometry.size();
|
||||
}
|
||||
|
||||
QRect KomposeGLWidget::getRect() const
|
||||
{
|
||||
return geometry;
|
||||
}
|
||||
|
||||
KomposeWidgetInterface* KomposeGLWidget::getParentWidget() const
|
||||
{
|
||||
if ( QObject::parent()->inherits("KomposeWidgetInterface") )
|
||||
return (KomposeWidgetInterface*)QObject::parent();
|
||||
else
|
||||
{
|
||||
qDebug("KomposeGLWidget::getParentWidget() - QWidget::parent() does not inherit (KomposeWidgetInterface)");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void KomposeGLWidget::removeChildWidget( KomposeWidgetInterface* obj )
|
||||
{
|
||||
QObject::removeChild((QObject *) obj);
|
||||
}
|
||||
|
||||
#include "komposeglwidget.moc"
|
@ -0,0 +1,256 @@
|
||||
//
|
||||
// C++ Implementation: komposeimage
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <oisch@sourceforge.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposeimage.h"
|
||||
#include "komposesettings.h"
|
||||
#include <kdebug.h>
|
||||
|
||||
|
||||
|
||||
KomposeImage::KomposeImage( Imlib_Image& im )
|
||||
: QObject( 0L, 0L ),
|
||||
bhasImage(true),
|
||||
bhasSourcePixmap(false),
|
||||
lasteffect( IEFFECT_NONE ),
|
||||
myWidth(-1),
|
||||
myHeight(-1)
|
||||
{
|
||||
myIm = im;
|
||||
imlib_context_set_image( myIm );
|
||||
myWidth = imlib_image_get_width();
|
||||
myHeight = imlib_image_get_height();
|
||||
myIsDirty = true;
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
|
||||
KomposeImage::KomposeImage()
|
||||
: QObject( 0L, 0L ),
|
||||
bhasImage(false),
|
||||
bhasSourcePixmap(false),
|
||||
lasteffect( IEFFECT_NONE ),
|
||||
myWidth(-1),
|
||||
myHeight(-1)
|
||||
{
|
||||
myIsDirty = false;
|
||||
init();
|
||||
}
|
||||
|
||||
KomposeImage::~KomposeImage()
|
||||
{
|
||||
clearCached();
|
||||
}
|
||||
|
||||
/*
|
||||
* Call this function when the Imlib image and the qpixmap that is drawn is not needed anymore
|
||||
* (normally when Komposé view is closed)
|
||||
*/
|
||||
void KomposeImage::clearCached()
|
||||
{
|
||||
if ( bhasSourcePixmap && bhasImage)
|
||||
{
|
||||
// Delete image as it takes a lot of ram
|
||||
bhasImage = false;
|
||||
imlib_context_set_image( myIm );
|
||||
imlib_free_image();
|
||||
}
|
||||
|
||||
if ( !KomposeSettings::instance()->getCacheScaledPixmaps() )
|
||||
{
|
||||
myQPixmap.resize(0,0);
|
||||
myIsDirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
void KomposeImage::init()
|
||||
{
|
||||
myOrigWidth = myWidth;
|
||||
myOrigHeight = myHeight;
|
||||
|
||||
myQPixmap.setOptimization( QPixmap::BestOptim );
|
||||
|
||||
// Create highlight color modifier
|
||||
cmHighlight = imlib_create_color_modifier();
|
||||
imlib_context_set_color_modifier(cmHighlight);
|
||||
imlib_modify_color_modifier_brightness(0.13);
|
||||
|
||||
cmMinimized = imlib_create_color_modifier();
|
||||
imlib_context_set_color_modifier(cmMinimized);
|
||||
imlib_modify_color_modifier_brightness(-0.13);
|
||||
imlib_context_set_color_modifier(0);
|
||||
}
|
||||
|
||||
void KomposeImage::setImage( Imlib_Image &im )
|
||||
{
|
||||
if (bhasImage)
|
||||
{
|
||||
imlib_context_set_image( myIm );
|
||||
imlib_free_image();
|
||||
}
|
||||
|
||||
myIm = im;
|
||||
if ( !bhasSourcePixmap ) // SourcePixmap overrides Image
|
||||
{
|
||||
imlib_context_set_image( myIm );
|
||||
myOrigWidth = imlib_image_get_width();
|
||||
myOrigHeight = imlib_image_get_height();
|
||||
qDebug("KomposeTask::setImage() - Set Image: size:" << myWidth << "x" << myHeight << endl;
|
||||
}
|
||||
|
||||
myIsDirty = true;
|
||||
bhasImage = true;
|
||||
}
|
||||
|
||||
void KomposeImage::setImage( QPixmap &pm )
|
||||
{
|
||||
mySourceQPixmap = pm;
|
||||
bhasSourcePixmap = true;
|
||||
|
||||
myOrigWidth = pm.width();
|
||||
myOrigHeight = pm.height();
|
||||
|
||||
myIsDirty = true;
|
||||
}
|
||||
|
||||
void KomposeImage::createImageFromPixmap()
|
||||
{
|
||||
if ( !bhasSourcePixmap )
|
||||
return;
|
||||
|
||||
qDebug("KomposeImage::createImageFromPixmap()");
|
||||
imlib_context_set_drawable( mySourceQPixmap.handle() );
|
||||
|
||||
if ( !KomposeSettings::instance()->getImageEffects() )
|
||||
{
|
||||
Imlib_Image img = imlib_create_image_from_drawable((Pixmap)0, 0, 0, mySourceQPixmap.width(), mySourceQPixmap.height(), 1);
|
||||
|
||||
setImage( img );
|
||||
}
|
||||
else
|
||||
{
|
||||
Imlib_Image imgOrig = imlib_create_image_from_drawable((Pixmap)0, 0, 0, mySourceQPixmap.width(), mySourceQPixmap.height(), 1);
|
||||
|
||||
imlib_context_set_anti_alias(1);
|
||||
|
||||
imlib_context_set_image( imgOrig );
|
||||
Imlib_Image img = imlib_create_cropped_scaled_image(0, 0, mySourceQPixmap.width(), mySourceQPixmap.height(), myWidth, myHeight);
|
||||
imlib_free_image();
|
||||
|
||||
setImage( img );
|
||||
}
|
||||
}
|
||||
|
||||
void KomposeImage::resize( int width, int height )
|
||||
{
|
||||
if ( myWidth == width && myHeight == height )
|
||||
return;
|
||||
|
||||
if (bhasImage)
|
||||
{
|
||||
bhasImage = false;
|
||||
imlib_context_set_image( myIm );
|
||||
imlib_free_image();
|
||||
}
|
||||
|
||||
myWidth = width;
|
||||
myHeight = height;
|
||||
myIsDirty = true;
|
||||
}
|
||||
|
||||
QPixmap* KomposeImage::qpixmap( int effect )
|
||||
{
|
||||
if ( KomposeSettings::instance()->getImageEffects() && (lasteffect != effect ) )
|
||||
{
|
||||
myIsDirty = true;
|
||||
lasteffect = effect;
|
||||
}
|
||||
|
||||
if ( myIsDirty)
|
||||
renderPixmap();
|
||||
|
||||
return &myQPixmap;
|
||||
}
|
||||
|
||||
|
||||
void KomposeImage::renderPixmap()
|
||||
{
|
||||
// Is image dirty? has a width been set?
|
||||
if ( !myIsDirty || myWidth==-1 )
|
||||
return;
|
||||
|
||||
emit startRendering();
|
||||
|
||||
if ( !bhasImage && bhasSourcePixmap )
|
||||
createImageFromPixmap();
|
||||
else if ( !bhasImage && !bhasSourcePixmap )
|
||||
return;
|
||||
|
||||
qDebug("KomposeImage::renderPixmap() - Creating %dx%d pixmap", myWidth, myHeight);
|
||||
|
||||
imlib_context_set_image( myIm );
|
||||
imlib_image_set_has_alpha(0);
|
||||
|
||||
if ( KomposeSettings::instance()->getImageEffects() )
|
||||
applyEffect();
|
||||
|
||||
myQPixmap.resize( myWidth, myHeight);
|
||||
|
||||
imlib_context_set_drawable(myQPixmap.handle());
|
||||
imlib_context_set_anti_alias(1);
|
||||
imlib_render_image_on_drawable_at_size(0, 0, myWidth, myHeight);
|
||||
|
||||
emit stoppedRendering();
|
||||
|
||||
myIsDirty = false;
|
||||
}
|
||||
|
||||
void KomposeImage::applyEffect()
|
||||
{
|
||||
imlib_context_set_color_modifier(0);
|
||||
|
||||
if ( lasteffect == IEFFECT_MINIMIZED || lasteffect == IEFFECT_MINIMIZED_AND_TITLE )
|
||||
{
|
||||
//FIXME: maybe there is a faster tint filter?!
|
||||
imlib_context_set_color_modifier(cmMinimized);
|
||||
}
|
||||
|
||||
if ( lasteffect == IEFFECT_HIGHLIGHT )
|
||||
{
|
||||
//FIXME: maybe there is a faster tint filter?!
|
||||
imlib_context_set_color_modifier(cmHighlight);
|
||||
}
|
||||
|
||||
if ( lasteffect == IEFFECT_TITLE || lasteffect == IEFFECT_MINIMIZED_AND_TITLE )
|
||||
{
|
||||
/* we can blend stuff now */
|
||||
imlib_context_set_blend(1);
|
||||
/* our color range */
|
||||
Imlib_Color_Range range;
|
||||
|
||||
/* draw a gradient on top of things at the top left of the window */
|
||||
/* create a range */
|
||||
range = imlib_create_color_range();
|
||||
imlib_context_set_color_range(range);
|
||||
imlib_context_set_color(255, 255, 255, 0);
|
||||
imlib_add_color_to_color_range(0);
|
||||
imlib_context_set_color(255, 255, 255, 255);
|
||||
imlib_add_color_to_color_range(1000);
|
||||
/* draw the range */
|
||||
imlib_context_set_image(myIm);
|
||||
imlib_image_fill_color_range_rectangle(0, 0, myWidth, KomposeSettings::instance()->getWindowTitleFontAscent() * 3, -180.0);
|
||||
/* free it */
|
||||
imlib_free_color_range();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#include "komposeimage.moc"
|
@ -0,0 +1,87 @@
|
||||
//
|
||||
// C++ Interface: komposeimage
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <oisch@sourceforge.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#ifndef KOMPOSEIMAGE_H
|
||||
#define KOMPOSEIMAGE_H
|
||||
|
||||
#include <qobject.h>
|
||||
#include <qstring.h>
|
||||
#include <qpixmap.h>
|
||||
|
||||
// #include those AFTER Qt-includes!
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <Imlib2.h>
|
||||
|
||||
enum ImageEffect { IEFFECT_NONE, IEFFECT_TITLE, IEFFECT_MINIMIZED, IEFFECT_MINIMIZED_AND_TITLE, IEFFECT_HIGHLIGHT };
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeImage : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
KomposeImage( Imlib_Image &im );
|
||||
KomposeImage();
|
||||
~KomposeImage();
|
||||
|
||||
int width() const { return myWidth; }
|
||||
int height() const { return myHeight; }
|
||||
int originalWidth() const { return myOrigWidth; }
|
||||
int originalHeight() const { return myOrigHeight; }
|
||||
|
||||
void resize( int width, int height );
|
||||
|
||||
QPixmap* qpixmap( int effect );
|
||||
void renderPixmap();
|
||||
|
||||
void setDirty( bool d ) { myIsDirty = d; }
|
||||
bool isDirty() const { return myIsDirty; }
|
||||
bool isValid() { return bhasImage || bhasSourcePixmap; }
|
||||
bool hasImage() { return bhasImage; }
|
||||
void setImage( Imlib_Image &im );
|
||||
void setImage( QPixmap &pm );
|
||||
|
||||
public slots:
|
||||
void clearCached();
|
||||
|
||||
protected:
|
||||
void createImageFromPixmap();
|
||||
void applyEffect();
|
||||
void init();
|
||||
|
||||
private:
|
||||
int myWidth;
|
||||
int myHeight;
|
||||
|
||||
Imlib_Image myIm;
|
||||
QPixmap myQPixmap;
|
||||
QPixmap mySourceQPixmap;
|
||||
|
||||
Imlib_Color_Modifier cmHighlight, cmMinimized;
|
||||
|
||||
bool myIsDirty;
|
||||
bool bhasImage;
|
||||
bool bhasSourcePixmap;
|
||||
|
||||
int myOrigWidth;
|
||||
int myOrigHeight;
|
||||
|
||||
int lasteffect;
|
||||
|
||||
signals:
|
||||
void startRendering();
|
||||
void stoppedRendering();
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,426 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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 "komposelayout.h"
|
||||
|
||||
#include "komposewidget.h"
|
||||
#include "komposeviewmanager.h"
|
||||
#include "komposetaskmanager.h"
|
||||
#include "komposefullscreenwidget.h"
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include <kwin.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
|
||||
KomposeLayout::KomposeLayout( KomposeWidget *parent, int type, int dist, const char *name )
|
||||
: QObject(parent, name),
|
||||
spacing(dist),
|
||||
widgetsChanged(false),
|
||||
currentRows(0),
|
||||
currentColumns(0),
|
||||
parentWidget(parent)
|
||||
{
|
||||
setType( type );
|
||||
currentSize = QSize( 1, 1 );
|
||||
}
|
||||
|
||||
KomposeLayout::~KomposeLayout()
|
||||
{}
|
||||
|
||||
void KomposeLayout::setType( int t )
|
||||
{
|
||||
if ( t == TLAYOUT_TASKCONTAINERS &&
|
||||
!KomposeSettings::instance()->getDynamicVirtDeskLayout() )
|
||||
t = TLAYOUT_GENERIC;
|
||||
layoutType = t;
|
||||
}
|
||||
|
||||
|
||||
void KomposeLayout::add( KomposeWidget *w )
|
||||
{
|
||||
//kdDebug() << "KomposeLayout::add()@%s - Added widget to layout", parent()->className());
|
||||
//kdDebug() << "KomposeLayout::add() - Added widget to layout");
|
||||
list.append( w );
|
||||
widgetsChanged = true;
|
||||
}
|
||||
|
||||
void KomposeLayout::remove( KomposeWidget *w )
|
||||
{
|
||||
list.remove( w );
|
||||
widgetsChanged = true;
|
||||
}
|
||||
|
||||
|
||||
void KomposeLayout::arrangeLayout()
|
||||
{
|
||||
//kdDebug() << "KomposeLayout::arrangeLayout()");
|
||||
rearrangeContents();
|
||||
}
|
||||
|
||||
void KomposeLayout::rearrangeContents()
|
||||
{
|
||||
// Check or empty list
|
||||
if (list.count() == 0)
|
||||
{
|
||||
kdDebug() << "KomposeLayout::rearrangeContents() - empty list... skipping!" << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Check for layout Type and do the work
|
||||
if (layoutType==TLAYOUT_TASKCONTAINERS)
|
||||
{
|
||||
filledContainers.clear();
|
||||
emptyContainers.clear();
|
||||
|
||||
// Check for empty containers
|
||||
QPtrListIterator<KomposeWidget> it( list );
|
||||
KomposeWidget *task;
|
||||
while ( (task = it.current()) != 0 )
|
||||
{
|
||||
++it;
|
||||
KomposeTaskContainerWidget *containerTask = dynamic_cast<KomposeTaskContainerWidget*>(task);
|
||||
|
||||
if ( containerTask->getNumofChilds() > 0 )
|
||||
{
|
||||
filledContainers.append( containerTask );
|
||||
}
|
||||
else
|
||||
{
|
||||
emptyContainers.append( containerTask );
|
||||
}
|
||||
}
|
||||
|
||||
// Arrange filled containers
|
||||
QRect filledRect( 0,
|
||||
0,
|
||||
parentWidget->width(),
|
||||
parentWidget->height() - ( 40 + 2*spacing ) );
|
||||
// arrange the filled desktops taking 90% of the screen
|
||||
rearrangeContents( filledRect, filledContainers );
|
||||
|
||||
// Arrange empty containers
|
||||
QRect emptyRect( 0,
|
||||
parentWidget->height() - ( 40 + 2*spacing ),
|
||||
parentWidget->width(),
|
||||
( 40 + 2*spacing ) );
|
||||
// arrange the empty widget in one row
|
||||
rearrangeContents( emptyRect, emptyContainers, 1, -1, false );
|
||||
|
||||
|
||||
}
|
||||
else // default type (generic)
|
||||
{
|
||||
QRect availRect( 0,
|
||||
0,
|
||||
parentWidget->width(),
|
||||
parentWidget->height());
|
||||
rearrangeContents( availRect, list );
|
||||
}
|
||||
|
||||
|
||||
currentSize = parentWidget->size();
|
||||
widgetsChanged = false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* availRect specifies the size&pos of the contents
|
||||
* Specify either rows or cols to set a fixed number of those (setting both won't work correctly)
|
||||
*/
|
||||
void KomposeLayout::rearrangeContents( const QRect& availRect, const QPtrList<KomposeWidget> widgets, int rows, int columns, bool setMemberRowsCols )
|
||||
{
|
||||
// Check or empty list
|
||||
if (widgets.count() == 0)
|
||||
{
|
||||
kdDebug() << "KomposeLayout::rearrangeContents() - empty list... skipping!" << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
QPtrListIterator<KomposeWidget> it( widgets );
|
||||
|
||||
// Calculate grid's rows & cols
|
||||
if ( rows != -1 ) // rows have been specified
|
||||
{
|
||||
columns = (int)ceil(widgets.count() / rows);
|
||||
}
|
||||
else if ( columns != -1 ) // columns have been specified
|
||||
{
|
||||
rows = (int)ceil(widgets.count() / columns);
|
||||
}
|
||||
else // neither rows nor cols have been specified
|
||||
{
|
||||
double parentRatio = (double)availRect.width() / (double)availRect.height();
|
||||
// Use more columns than rows when parent's width > parent's height
|
||||
if ( parentRatio > 1 )
|
||||
{
|
||||
columns = (int)ceil( sqrt(widgets.count()) );
|
||||
rows = (int)ceil( (double)widgets.count() / (double)columns );
|
||||
}
|
||||
else
|
||||
{
|
||||
rows = (int)ceil( sqrt(widgets.count()) );
|
||||
columns = (int)ceil( (double)widgets.count() / (double)rows );
|
||||
}
|
||||
}
|
||||
|
||||
kdDebug() << "KomposeLayout::rearrangeContents() - Relayouting " << widgets.count() << " child widgets with " << rows << " rows & " << columns << " columns" << endl;
|
||||
|
||||
// Calculate width & height
|
||||
int w = (availRect.width() - (columns+1) * spacing ) / columns;
|
||||
int h = (availRect.height() - (rows+1) * spacing ) / rows;
|
||||
|
||||
QValueList<QRect> geometryRects;
|
||||
QValueList<int> maxRowHeights;
|
||||
// Process rows
|
||||
for ( int i=0; i<rows; ++i )
|
||||
{
|
||||
int xOffsetFromLastCol = 0;
|
||||
int maxHeightInRow = 0;
|
||||
// Process columns
|
||||
for ( int j=0; j<columns; ++j )
|
||||
{
|
||||
KomposeWidget *task;
|
||||
|
||||
// Check for end of List
|
||||
if ( (task = it.current()) == 0)
|
||||
break;
|
||||
|
||||
// Calculate width and height of widget
|
||||
double ratio = task->getAspectRatio();
|
||||
|
||||
int widgetw = 100;
|
||||
int widgeth = 100;
|
||||
int usableW = w;
|
||||
int usableH = h;
|
||||
|
||||
// use width of two boxes if there is no right neighbour
|
||||
if (it.atLast() && j!=columns-1)
|
||||
{
|
||||
usableW = 2*w;
|
||||
}
|
||||
++it; // We need access to the neighbour in the following
|
||||
// expand if right neighbour has ratio < 1
|
||||
if (j!=columns-1 && it.current() && it.current()->getAspectRatio() < 1)
|
||||
{
|
||||
int addW = w - it.current()->getWidthForHeight(h);
|
||||
if ( addW > 0 )
|
||||
{
|
||||
usableW = w + addW;
|
||||
}
|
||||
}
|
||||
|
||||
if ( ratio == -1 )
|
||||
{
|
||||
widgetw = w;
|
||||
widgeth = h;
|
||||
}
|
||||
else
|
||||
{
|
||||
double widthForHeight = task->getWidthForHeight(usableH);
|
||||
double heightForWidth = task->getHeightForWidth(usableW);
|
||||
if ( (ratio >= 1.0 && heightForWidth <= usableH) ||
|
||||
(ratio < 1.0 && widthForHeight > usableW) )
|
||||
{
|
||||
widgetw = usableW;
|
||||
widgeth = (int)heightForWidth;
|
||||
}
|
||||
else if ( (ratio < 1.0 && widthForHeight <= usableW) ||
|
||||
(ratio >= 1.0 && heightForWidth > usableH) )
|
||||
{
|
||||
widgeth = usableH;
|
||||
widgetw = (int)widthForHeight;
|
||||
}
|
||||
}
|
||||
|
||||
// Set the Widget's size
|
||||
|
||||
int alignmentXoffset = 0;
|
||||
int alignmentYoffset = 0;
|
||||
if ( i==0 && h > widgeth )
|
||||
alignmentYoffset = h - widgeth;
|
||||
if ( j==0 && w > widgetw )
|
||||
alignmentXoffset = w - widgetw;
|
||||
QRect geom( availRect.x() + j * (w + spacing) + spacing + alignmentXoffset + xOffsetFromLastCol,
|
||||
availRect.y() + i * (h + spacing) + spacing + alignmentYoffset,
|
||||
widgetw, widgeth );
|
||||
geometryRects.append(geom);
|
||||
|
||||
// Set the x offset for the next column
|
||||
if (alignmentXoffset==0)
|
||||
xOffsetFromLastCol += widgetw-w;
|
||||
if (maxHeightInRow < widgeth)
|
||||
maxHeightInRow = widgeth;
|
||||
}
|
||||
maxRowHeights.append(maxHeightInRow);
|
||||
}
|
||||
|
||||
it.toFirst();
|
||||
QValueList<QRect>::iterator geomIt = geometryRects.begin();
|
||||
QValueList<int>::iterator maxRowHeightIt = maxRowHeights.begin();
|
||||
int topOffset = 0;
|
||||
for ( int i=0; i<rows; ++i )
|
||||
{
|
||||
// Process columns again
|
||||
for ( int j=0; j<columns; ++j )
|
||||
{
|
||||
KomposeWidget *task;
|
||||
if ( (task = it.current()) == 0)
|
||||
break;
|
||||
|
||||
QRect geom = *geomIt;
|
||||
geom.setY( geom.y() + topOffset );
|
||||
// geom.setHeight( geom.height() - topOffset );
|
||||
task->setGeometry( geom );
|
||||
kdDebug() << "KomposeLayout::rearrangeContents() - Put item " << task->className() << " at x: " << geom.x() << " y: " << geom.y() << " with size: " << geom.width() << "x" << geom.height() << endl;
|
||||
++geomIt;
|
||||
++it;
|
||||
}
|
||||
if ( *maxRowHeightIt-h > 0 )
|
||||
topOffset += *maxRowHeightIt-h;
|
||||
++maxRowHeightIt;
|
||||
}
|
||||
|
||||
// Sync cols/rows member vars to current cols/rows
|
||||
if ( setMemberRowsCols )
|
||||
{
|
||||
currentRows = rows;
|
||||
currentColumns = columns;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Search for neighbour (called from outside)
|
||||
*/
|
||||
KomposeWidget* KomposeLayout::getNeighbour( const KomposeWidget* widget, int direction, int wrap )
|
||||
{
|
||||
kdDebug() << "KomposeLayout::getNeighbour() - Called with list.count: " << list.count() << endl;
|
||||
|
||||
if (layoutType==TLAYOUT_TASKCONTAINERS)
|
||||
{
|
||||
KomposeWidget* neighbour = 0;
|
||||
if ( filledContainers.containsRef(widget) )
|
||||
{
|
||||
if ( ( neighbour = getNeighbour( filledContainers, widget, direction, WLAYOUT_HORIZONTAL ) ) == 0 )
|
||||
return emptyContainers.first();
|
||||
}
|
||||
else if ( emptyContainers.containsRef(widget) )
|
||||
{
|
||||
if ( ( neighbour = getNeighbour( emptyContainers, widget, direction, WLAYOUT_HORIZONTAL ) ) == 0 )
|
||||
if ( direction == DLAYOUT_TOP )
|
||||
return filledContainers.last();
|
||||
else
|
||||
return filledContainers.first();
|
||||
}
|
||||
return neighbour;
|
||||
}
|
||||
else if (layoutType==TLAYOUT_GENERIC)
|
||||
return getNeighbour( list, widget, direction, wrap );
|
||||
|
||||
kdDebug() << "KomposeLayout::getNeighbour() - this should never happen!" << endl;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Search for neighbour in the given list (called from inside)
|
||||
*/
|
||||
KomposeWidget* KomposeLayout::getNeighbour(
|
||||
QPtrList<KomposeWidget> listToSearch,
|
||||
const KomposeWidget* widget,
|
||||
int direction,
|
||||
int wrap )
|
||||
{
|
||||
QPtrListIterator<KomposeWidget> it( listToSearch );
|
||||
|
||||
KomposeWidget *task;
|
||||
KomposeWidget *neighbour;
|
||||
int index = 0;
|
||||
|
||||
if (widget == 0)
|
||||
{
|
||||
kdDebug() << "KomposeLayout::getNeighbour() - NULL startWidget given. using first()" << endl;
|
||||
return listToSearch.first();
|
||||
}
|
||||
|
||||
while ( (task = it.current()) != 0 )
|
||||
{
|
||||
if ( task == widget )
|
||||
{
|
||||
switch ( direction )
|
||||
{
|
||||
case DLAYOUT_RIGHT:
|
||||
++it;
|
||||
if ( (index)%currentColumns == currentColumns-1 || ( neighbour = it.current() ) == 0 )
|
||||
{
|
||||
if (wrap == WLAYOUT_HORIZONTAL || wrap == WLAYOUT_BOTH )
|
||||
return listToSearch.at(index+1-currentColumns);
|
||||
kdDebug() << "KomposeLayout::getNeighbour() - No valid neighbour available" << endl;
|
||||
return NULL;
|
||||
}
|
||||
return neighbour;
|
||||
case DLAYOUT_LEFT:
|
||||
--it;
|
||||
if ( index%currentColumns == 0 || ( neighbour = it.current() ) == 0 )
|
||||
{
|
||||
if (wrap == WLAYOUT_HORIZONTAL || wrap == WLAYOUT_BOTH )
|
||||
if ( (uint)(index+currentColumns-1) < listToSearch.count() )
|
||||
return listToSearch.at(index+currentColumns-1);
|
||||
else
|
||||
return listToSearch.last();
|
||||
kdDebug() << "KomposeLayout::getNeighbour() - No valid neighbour available" << endl;
|
||||
return NULL;
|
||||
}
|
||||
return neighbour;
|
||||
case DLAYOUT_TOP:
|
||||
if ( index < currentColumns || (neighbour = listToSearch.at( index - currentColumns )) == 0)
|
||||
{
|
||||
if (wrap == WLAYOUT_VERTICAL || wrap == WLAYOUT_BOTH )
|
||||
if ( listToSearch.count()%currentColumns == 0 || listToSearch.count()%currentColumns > (uint)(index) )
|
||||
return listToSearch.at( (currentRows-1)*currentColumns + index );
|
||||
else
|
||||
return listToSearch.at( (currentRows-2)*currentColumns + index );
|
||||
kdDebug() << "KomposeLayout::getNeighbour() - No valid neighbour available" << endl;
|
||||
return NULL;
|
||||
}
|
||||
return neighbour;
|
||||
case DLAYOUT_BOTTOM:
|
||||
if ( listToSearch.count() <= (uint)(index + currentColumns) || (neighbour = listToSearch.at( index + currentColumns )) == 0)
|
||||
{
|
||||
if (wrap == WLAYOUT_VERTICAL || wrap == WLAYOUT_BOTH )
|
||||
return listToSearch.at( index%currentColumns );
|
||||
kdDebug() << "KomposeLayout::getNeighbour() - No valid neighbour available" << endl;
|
||||
return NULL;
|
||||
}
|
||||
return neighbour;
|
||||
}
|
||||
}
|
||||
++index;
|
||||
++it;
|
||||
}
|
||||
|
||||
kdDebug() << "KomposeLayout::getNeighbour() - this should never happen!" << endl;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
#include "komposelayout.moc"
|
@ -0,0 +1,95 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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. *
|
||||
***************************************************************************/
|
||||
#ifndef KOMPOSELAYOUT_H
|
||||
#define KOMPOSELAYOUT_H
|
||||
|
||||
#include <qobject.h>
|
||||
#include <qptrlist.h>
|
||||
|
||||
#include "komposewidget.h"
|
||||
|
||||
class QRect;
|
||||
|
||||
enum LayoutType { TLAYOUT_GENERIC, // layouts all KomposeWidget classes
|
||||
TLAYOUT_TASKCONTAINERS // layouts containers only
|
||||
};
|
||||
|
||||
enum LayoutDirections { DLAYOUT_LEFT, DLAYOUT_RIGHT, DLAYOUT_TOP, DLAYOUT_BOTTOM };
|
||||
|
||||
enum WrapDirections { WLAYOUT_NONE, WLAYOUT_HORIZONTAL, WLAYOUT_VERTICAL, WLAYOUT_BOTH };
|
||||
|
||||
/**
|
||||
The main layout class.
|
||||
QLayout just didn't fit :(
|
||||
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeLayout : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KomposeLayout( KomposeWidget *parent, int type = TLAYOUT_GENERIC, int dist = 10, const char *name = 0 );
|
||||
|
||||
~KomposeLayout();
|
||||
|
||||
void add( KomposeWidget *w );
|
||||
void remove( KomposeWidget *w );
|
||||
void setType( int t );
|
||||
int getType() { return layoutType; }
|
||||
|
||||
const QPtrList<KomposeWidget> *getManagedWidgets() { return &list; }
|
||||
int getNumofChilds() { return list.count(); }
|
||||
KomposeWidget* getNeighbour( const KomposeWidget* widget,
|
||||
int direction = DLAYOUT_RIGHT,
|
||||
int wrap = WLAYOUT_NONE );
|
||||
|
||||
public slots:
|
||||
void arrangeLayout();
|
||||
|
||||
protected:
|
||||
KomposeWidget* getNeighbour( QPtrList<KomposeWidget> listToSearch,
|
||||
const KomposeWidget* widget,
|
||||
int direction = DLAYOUT_RIGHT,
|
||||
int wrap = WLAYOUT_NONE );
|
||||
void rearrangeContents();
|
||||
void rearrangeContents( const QRect& availRect,
|
||||
const QPtrList<KomposeWidget> widgets,
|
||||
int rows = -1,
|
||||
int columns = -1,
|
||||
bool setMemberRowsCols = true );
|
||||
|
||||
private:
|
||||
// List of all managed childs
|
||||
QPtrList<KomposeWidget> list;
|
||||
// List of container childs seperated by empty/full
|
||||
QPtrList<KomposeWidget> filledContainers;
|
||||
QPtrList<KomposeWidget> emptyContainers;
|
||||
|
||||
QSize currentSize;
|
||||
int layoutType;
|
||||
int spacing;
|
||||
bool widgetsChanged;
|
||||
int currentRows;
|
||||
int currentColumns;
|
||||
|
||||
KomposeWidget* parentWidget;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,411 @@
|
||||
//
|
||||
// C++ Implementation: komposepreferences
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposepreferences.h"
|
||||
|
||||
#include "komposesettings.h"
|
||||
#include "komposeglobal.h"
|
||||
|
||||
#include <qlayout.h>
|
||||
#include <qcheckbox.h>
|
||||
#include <qlabel.h>
|
||||
#include <kapplication.h>
|
||||
#include <qwhatsthis.h>
|
||||
#include <qtooltip.h>
|
||||
#include <qspinbox.h>
|
||||
#include <qgroupbox.h>
|
||||
#include <qbuttongroup.h>
|
||||
#include <qhbox.h>
|
||||
#include <qslider.h>
|
||||
#include <qpushbutton.h>
|
||||
#include <qgrid.h>
|
||||
#include <qvgroupbox.h>
|
||||
#include <qradiobutton.h>
|
||||
|
||||
#include <kiconloader.h>
|
||||
#include <kcolorbutton.h>
|
||||
#include <kfontdialog.h>
|
||||
|
||||
KomposePreferences::KomposePreferences()
|
||||
: KDialogBase(IconList, i18n("Komposé Preferences"), Ok|Apply|Cancel, Ok)
|
||||
{
|
||||
// FIXME: this is the biggest constructor I've EVER written!
|
||||
// How about Qt Designer?!
|
||||
m_hasXinerama = QDesktopWidget().numScreens() > 1;
|
||||
|
||||
QFrame *page1 = addPage( i18n("Behavior"), QString::null, DesktopIcon("winprops", KIcon::SizeMedium) );
|
||||
QFrame *page2 = addPage( i18n("Appearance"), QString::null, DesktopIcon("appearance", KIcon::SizeMedium) );
|
||||
QFrame *page3 = addPage( i18n("Layouts"), QString::null, DesktopIcon("window_list", KIcon::SizeMedium) );
|
||||
|
||||
QVBoxLayout *page1Layout = new QVBoxLayout( page1, 0, KDialog::spacingHint() );
|
||||
|
||||
defaultViewBtnGroup = new QButtonGroup( 2, Horizontal, i18n("Default Layout"), page1 );
|
||||
defaultViewBtnGroup->setExclusive( true );
|
||||
QString defaultViewBtnGroupHelp = i18n("Determines which view should be started by default (e.g. when you click on the systray icon).");
|
||||
QWhatsThis::add( defaultViewBtnGroup, defaultViewBtnGroupHelp );
|
||||
QToolTip::add( defaultViewBtnGroup, defaultViewBtnGroupHelp );
|
||||
defaultViewWorld = new QRadioButton(i18n("Ungrouped"), defaultViewBtnGroup );
|
||||
QString defaultViewWorldHelp = i18n("Fullscreen layout that shows all windows in no specific order");
|
||||
QWhatsThis::add( defaultViewWorld, defaultViewWorldHelp );
|
||||
QToolTip::add( defaultViewWorld, defaultViewWorldHelp );
|
||||
defaultViewVirtualDesks = new QRadioButton(i18n("Grouped by virtual desktops"), defaultViewBtnGroup );
|
||||
QString defaultViewVirtualDesksHelp = i18n("Fullscreen layout that shows a representation of your virtual desktops\n and places the windows inside.");
|
||||
QWhatsThis::add( defaultViewVirtualDesks, defaultViewVirtualDesksHelp );
|
||||
QToolTip::add( defaultViewVirtualDesks, defaultViewVirtualDesksHelp );
|
||||
defaultViewCurrentDesk = new QRadioButton(i18n("Current virtual desktop"), defaultViewBtnGroup );
|
||||
QString defaultViewCurrentDeskHelp = i18n("Fullscreen layout that shows the windows of the desktop you're currently working on.");
|
||||
QWhatsThis::add( defaultViewCurrentDesk, defaultViewCurrentDeskHelp );
|
||||
QToolTip::add( defaultViewCurrentDesk, defaultViewCurrentDeskHelp );
|
||||
page1Layout->addWidget(defaultViewBtnGroup);
|
||||
|
||||
if (m_hasXinerama)
|
||||
{
|
||||
QGroupBox *xineramaGroupBox = new QGroupBox( 2, Vertical, i18n("Xinerama"), page1 );
|
||||
|
||||
QDesktopWidget deskwidget;
|
||||
m_viewScreenAll = new QCheckBox(i18n("Use the whole desktop for Komposé"), xineramaGroupBox);
|
||||
|
||||
QHBox *hLayXineramaGrabDelay = new QHBox(xineramaGroupBox);
|
||||
QLabel *xineramaLabel = new QLabel(i18n("Use screen:"), hLayXineramaGrabDelay);
|
||||
m_viewScreen = new QSpinBox(0, deskwidget.numScreens()-1, 1, hLayXineramaGrabDelay);
|
||||
connect( m_viewScreenAll, SIGNAL(toggled(bool)), m_viewScreen, SLOT(setDisabled(bool)) );
|
||||
xineramaLabel->setBuddy(m_viewScreen);
|
||||
QString xineramaHelp = i18n("Specify the screen where Komposé should appear." );
|
||||
QWhatsThis::add( m_viewScreen, xineramaHelp );
|
||||
QToolTip::add( m_viewScreen, xineramaHelp );
|
||||
QWhatsThis::add( xineramaLabel, xineramaHelp );
|
||||
QToolTip::add( xineramaLabel, xineramaHelp );
|
||||
|
||||
page1Layout->addWidget(xineramaGroupBox);
|
||||
}
|
||||
|
||||
#ifdef COMPOSITE
|
||||
QGroupBox *screenshotsGroupBox = new QGroupBox( 4, Vertical, i18n("Screenshots"), page1 );
|
||||
|
||||
useComposite = new QCheckBox(i18n("Use XComposite if available"), screenshotsGroupBox);
|
||||
QString useCompositeHelp = i18n("Making use of the Composite extension of newer X Servers makes the grabbing of screenshots obsolete.\nThe contents of all windows are drawn in back buffers that will be accessed by Komposé\nNote that the Composite implementation of even modern graphic card drivers is still very slow and may make your system pretty unusable.");
|
||||
QWhatsThis::add( useComposite, useCompositeHelp );
|
||||
QToolTip::add( useComposite, useCompositeHelp );
|
||||
connect( useComposite, SIGNAL(toggled(bool)), SLOT(setUseCompositeToggled(bool)) );
|
||||
#else
|
||||
QGroupBox *screenshotsGroupBox = new QGroupBox( 3, Vertical, i18n("Screenshots"), page1 );
|
||||
#endif
|
||||
|
||||
passiveScreenshots = new QCheckBox(i18n("Passive screenshots"), screenshotsGroupBox);
|
||||
QString passiveScreenshotsHelp = i18n("Create a screenshot whenever you raise or active a window.\nWhen selected the amount the annoying popup-effect before every Komposé activation will be minimized to nearly zero.\nThe drawback is that the screenshots are not so recent and may not display the actual content.");
|
||||
QWhatsThis::add( passiveScreenshots, passiveScreenshotsHelp );
|
||||
QToolTip::add( passiveScreenshots, passiveScreenshotsHelp );
|
||||
|
||||
QHBox *hLayScreenshotGrabDelay = new QHBox(screenshotsGroupBox);
|
||||
QLabel *screenshotGrabDelayLabel = new QLabel(i18n("Delay between screenshots (ms):"), hLayScreenshotGrabDelay);
|
||||
screenshotGrabDelay = new QSpinBox(0, 999, 10, hLayScreenshotGrabDelay);
|
||||
screenshotGrabDelayLabel->setBuddy(screenshotGrabDelay);
|
||||
QString screenshotGrabDelayHelp = i18n("Specifies the time to wait between the activation of a window and the screenshot taking.\nIncrease it when your windows need more time to draw themselves after activation.\nValues below 300ms are not recommended, but may work in some cases." );
|
||||
QWhatsThis::add( screenshotGrabDelay, screenshotGrabDelayHelp );
|
||||
QToolTip::add( screenshotGrabDelay, screenshotGrabDelayHelp );
|
||||
QWhatsThis::add( screenshotGrabDelayLabel, screenshotGrabDelayHelp );
|
||||
QToolTip::add( screenshotGrabDelayLabel, screenshotGrabDelayHelp );
|
||||
|
||||
cacheScaledPixmaps = new QCheckBox(i18n("Cache scaled Screenshots"), screenshotsGroupBox);
|
||||
QString cacheScaledPixmapsHelp = i18n("This may avoid some scaling operations to be called repeatedly when Komposé has been displayed before and the screenshot's size didn't change.\nIt will however increase memory usage quite a bit.");
|
||||
QWhatsThis::add( cacheScaledPixmaps, cacheScaledPixmapsHelp );
|
||||
QToolTip::add( cacheScaledPixmaps, cacheScaledPixmapsHelp );
|
||||
|
||||
page1Layout->addWidget(screenshotsGroupBox);
|
||||
|
||||
|
||||
// Autolock
|
||||
QGroupBox* autoLockGroup = new QGroupBox( 0, Qt::Horizontal, i18n("Autoactivate when mouse moves into"), page1 );
|
||||
QGridLayout* autoLockLayout = new QGridLayout( autoLockGroup->layout(), 5, 2, KDialog::spacingHint() );
|
||||
m_topLeftCorner = new QCheckBox( i18n("Top-left corner"), autoLockGroup);
|
||||
autoLockLayout->addWidget( m_topLeftCorner, 0, 0 );
|
||||
m_topRightCorner = new QCheckBox( i18n("Top-right corner"), autoLockGroup );
|
||||
autoLockLayout->addWidget( m_topRightCorner, 1, 0 );
|
||||
m_bottomLeftCorner = new QCheckBox( i18n("Bottom-left corner"), autoLockGroup );
|
||||
autoLockLayout->addWidget( m_bottomLeftCorner, 2, 0 );
|
||||
m_bottomRightCorner = new QCheckBox( i18n("Bottom-right corner"), autoLockGroup );
|
||||
autoLockLayout->addWidget( m_bottomRightCorner, 3, 0 );
|
||||
|
||||
m_topEdge = new QCheckBox( i18n("Top edge"), autoLockGroup);
|
||||
autoLockLayout->addWidget( m_topEdge, 0, 1 );
|
||||
m_bottomEdge = new QCheckBox( i18n("Bottom edge"), autoLockGroup );
|
||||
autoLockLayout->addWidget( m_bottomEdge, 1, 1 );
|
||||
m_leftEdge = new QCheckBox( i18n("Left edge"), autoLockGroup );
|
||||
autoLockLayout->addWidget( m_leftEdge, 2, 1 );
|
||||
m_rightEdge = new QCheckBox( i18n("Right edge"), autoLockGroup );
|
||||
autoLockLayout->addWidget( m_rightEdge, 3, 1 );
|
||||
|
||||
QHBox *hLayAutoLockDelay = new QHBox(autoLockGroup);
|
||||
QLabel *autoLockDelayLabel = new QLabel(i18n("Delay until activation (ms):"), hLayAutoLockDelay);
|
||||
autoLockDelay = new QSpinBox(0, 5000, 10, hLayAutoLockDelay);
|
||||
autoLockDelayLabel->setBuddy(autoLockDelay);
|
||||
QString autoLockDelayHelp = i18n("Specifies the time in ms for which the mouse pointer must rest in the corner until auto-activation." );
|
||||
QWhatsThis::add( autoLockDelay, autoLockDelayHelp );
|
||||
QToolTip::add( autoLockDelay, autoLockDelayHelp );
|
||||
QWhatsThis::add( autoLockDelayLabel, autoLockDelayHelp );
|
||||
QToolTip::add( autoLockDelayLabel, autoLockDelayHelp );
|
||||
autoLockLayout->addMultiCellWidget( hLayAutoLockDelay, 4, 4, 0, 1 );
|
||||
|
||||
page1Layout->addWidget(autoLockGroup);
|
||||
|
||||
page1Layout->insertStretch(-1);
|
||||
|
||||
|
||||
|
||||
QVBoxLayout *page2Layout = new QVBoxLayout( page2, 0, KDialog::spacingHint() );
|
||||
|
||||
imageEffects = new QCheckBox(i18n("Enable image effects"), page2);
|
||||
QString imageEffectsHelp = i18n("Lighten windows when the mouse moves over it or gray out minimized windows.\nDepending on your system specs this can be a bit slower." );
|
||||
QWhatsThis::add( imageEffects, imageEffectsHelp );
|
||||
QToolTip::add( imageEffects, imageEffectsHelp );
|
||||
page2Layout->addWidget(imageEffects);
|
||||
|
||||
showDesktopNum = new QCheckBox(i18n("Show Desktop number on Systray icon"), page2);
|
||||
QString showDesktopNumHelp = i18n("Displays the number of the currently active Desktop on the Komposé systray icon." );
|
||||
QWhatsThis::add( showDesktopNum, showDesktopNumHelp );
|
||||
QToolTip::add( showDesktopNum, showDesktopNumHelp );
|
||||
page2Layout->addWidget(showDesktopNum);
|
||||
|
||||
QGroupBox *windowTitleGroupBox = new QGroupBox( 3, Vertical, i18n("Window Titles"), page2 );
|
||||
|
||||
QHBox *hBoxWindowTitles = new QHBox(windowTitleGroupBox);
|
||||
showWindowTitles = new QCheckBox(i18n("Show window titles"), hBoxWindowTitles);
|
||||
windowTitleFontBtn = new QPushButton(i18n("Select Font..."), hBoxWindowTitles);
|
||||
QString showWindowTitlesHelp = i18n( "Display the name of every window in Komposé" );
|
||||
QWhatsThis::add( showWindowTitles, showWindowTitlesHelp );
|
||||
QToolTip::add( showWindowTitles, showWindowTitlesHelp );
|
||||
connect( showWindowTitles, SIGNAL(toggled(bool)), windowTitleFontBtn, SLOT(setEnabled(bool)) );
|
||||
connect( windowTitleFontBtn, SIGNAL(clicked()), this, SLOT(showWindowTitleFontDialog()) );
|
||||
|
||||
QGrid *gridWindowTitlesColor = new QGrid(2, windowTitleGroupBox);
|
||||
// windowTitleFontColorLabel = new QLabel(windowTitleFontColor, i18n("Text color: "), gridWindowTitlesColor); // FIXME: How to link to a buddy that doesn't yet exist?
|
||||
windowTitleFontColorLabel = new QLabel(i18n("Text color:"), gridWindowTitlesColor);
|
||||
windowTitleFontColor = new KColorButton(Qt::black, gridWindowTitlesColor);
|
||||
connect( showWindowTitles, SIGNAL(toggled(bool)), windowTitleFontColorLabel, SLOT(setEnabled(bool)) );
|
||||
connect( showWindowTitles, SIGNAL(toggled(bool)), windowTitleFontColor, SLOT(setEnabled(bool)) );
|
||||
showWindowTitleShadow = new QCheckBox(i18n("Shadow color:"), gridWindowTitlesColor);
|
||||
windowTitleFontShadowColor = new KColorButton(Qt::lightGray, gridWindowTitlesColor);
|
||||
connect( showWindowTitles, SIGNAL(toggled(bool)), showWindowTitleShadow, SLOT(setEnabled(bool)) );
|
||||
connect( showWindowTitles, SIGNAL(toggled(bool)), windowTitleFontShadowColor, SLOT(setEnabled(bool)) );
|
||||
connect( showWindowTitleShadow, SIGNAL(toggled(bool)), windowTitleFontShadowColor, SLOT(setEnabled(bool)) );
|
||||
|
||||
page2Layout->addWidget(windowTitleGroupBox);
|
||||
|
||||
|
||||
|
||||
QGroupBox *iconGroupBox = new QGroupBox( 3, Vertical, i18n("Task Icons"), page2 );
|
||||
showIcons = new QCheckBox(i18n("Show icons"), iconGroupBox);
|
||||
iconSize = new QSlider(0, 3, 1, 0, Qt::Horizontal, iconGroupBox);
|
||||
iconSizeDescription = new QLabel( iconSize, "", iconGroupBox);
|
||||
connect( iconSize, SIGNAL( sliderMoved(int) ), this, SLOT( updateIconSliderDesc(int) ) );
|
||||
connect( iconSize, SIGNAL( valueChanged(int) ), this, SLOT( updateIconSliderDesc(int) ) );
|
||||
connect( showIcons, SIGNAL( toggled(bool) ), iconSize, SLOT( setEnabled(bool) ) );
|
||||
connect( showIcons, SIGNAL( toggled(bool) ), iconSizeDescription, SLOT( setEnabled(bool) ) );
|
||||
page2Layout->addWidget(iconGroupBox);
|
||||
|
||||
page2Layout->insertStretch(-1);
|
||||
|
||||
|
||||
|
||||
QVBoxLayout *page3Layout = new QVBoxLayout( page3, 0, KDialog::spacingHint() );
|
||||
|
||||
QVGroupBox *virtDesksLayoutGroupBox = new QVGroupBox( i18n("Grouped by Virtual Desktops"), page3 );
|
||||
dynamicVirtDeskLayout = new QCheckBox(i18n("Layout empty virtual desktops minimized"), virtDesksLayoutGroupBox );
|
||||
QString dynamicVirtDeskLayoutHelp = i18n("Check this if you want empty virtual desktops to take less space on the screen.\nUncheck it if you want them to be arranged statically, each of the same size.");
|
||||
QWhatsThis::add( dynamicVirtDeskLayout, dynamicVirtDeskLayoutHelp );
|
||||
QToolTip::add( dynamicVirtDeskLayout, dynamicVirtDeskLayoutHelp );
|
||||
|
||||
QGrid *desktopColorsGroupBox = new QGrid( 2, virtDesksLayoutGroupBox );
|
||||
desktopColorsGroupBox->setSpacing( 4 );
|
||||
desktopTitleFontColorLabel = new QLabel(i18n("Desktop frame color:"), desktopColorsGroupBox);
|
||||
desktopTitleFontColor = new KColorButton(Qt::black, desktopColorsGroupBox);
|
||||
desktopTitleFontHighlightColorLabel = new QLabel(i18n("Desktop frame highlight color:"), desktopColorsGroupBox);
|
||||
desktopTitleFontHighlightColor = new KColorButton(Qt::black, desktopColorsGroupBox);
|
||||
|
||||
page3Layout->addWidget(virtDesksLayoutGroupBox);
|
||||
|
||||
desktopTitleFontBtn = new QPushButton(i18n("Select Desktop Names Font..."), virtDesksLayoutGroupBox);
|
||||
connect( desktopTitleFontBtn, SIGNAL(clicked()), this, SLOT(showDesktopTitleFontDialog()) );
|
||||
|
||||
page3Layout->insertStretch(-1);
|
||||
|
||||
|
||||
fillPages();
|
||||
}
|
||||
|
||||
|
||||
KomposePreferences::~KomposePreferences()
|
||||
{}
|
||||
|
||||
void KomposePreferences::updateIconSliderDesc( int val )
|
||||
{
|
||||
switch( val )
|
||||
{
|
||||
case 0:
|
||||
iconSizeDescription->setText( i18n("16x16") );
|
||||
break;
|
||||
case 1:
|
||||
iconSizeDescription->setText( i18n("32x32") );
|
||||
break;
|
||||
case 2:
|
||||
iconSizeDescription->setText( i18n("64x64") );
|
||||
break;
|
||||
case 3:
|
||||
iconSizeDescription->setText( i18n("Don't scale, show as they are (preferably bigger)") );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void KomposePreferences::showWindowTitleFontDialog()
|
||||
{
|
||||
KFontDialog::getFont( *windowTitleFont );
|
||||
// if ( result == KFontDialog::Accepted )
|
||||
}
|
||||
|
||||
void KomposePreferences::showDesktopTitleFontDialog()
|
||||
{
|
||||
KFontDialog::getFont( *desktopTitleFont );
|
||||
}
|
||||
|
||||
void KomposePreferences::fillPages()
|
||||
{
|
||||
// Sync Settings to Preferences dialog
|
||||
switch ( KomposeSettings::instance()->getDefaultView() )
|
||||
{
|
||||
case KOMPOSEDISPLAY_VIRTUALDESKS:
|
||||
defaultViewVirtualDesks->setChecked( true );
|
||||
break;
|
||||
case KOMPOSEDISPLAY_WORLD:
|
||||
defaultViewWorld->setChecked( true );
|
||||
break;
|
||||
case KOMPOSEDISPLAY_CURRENTDESK:
|
||||
defaultViewCurrentDesk->setChecked( true );
|
||||
break;
|
||||
}
|
||||
|
||||
#ifdef COMPOSITE
|
||||
useComposite->setChecked( KomposeSettings::instance()->getUseComposite() );
|
||||
#endif
|
||||
passiveScreenshots->setChecked( KomposeSettings::instance()->getPassiveScreenshots() );
|
||||
screenshotGrabDelay->setValue( KomposeSettings::instance()->getScreenshotGrabDelay() / 1000000 );
|
||||
cacheScaledPixmaps->setChecked( KomposeSettings::instance()->getCacheScaledPixmaps() );
|
||||
dynamicVirtDeskLayout->setChecked( KomposeSettings::instance()->getDynamicVirtDeskLayout() );
|
||||
|
||||
imageEffects->setChecked( KomposeSettings::instance()->getImageEffects() );
|
||||
showDesktopNum->setChecked( KomposeSettings::instance()->getShowDesktopNum() );
|
||||
|
||||
showWindowTitles->setChecked( KomposeSettings::instance()->getShowWindowTitles() );
|
||||
windowTitleFont = new QFont(KomposeSettings::instance()->getWindowTitleFont());
|
||||
windowTitleFontColor->setColor( KomposeSettings::instance()->getWindowTitleFontColor() );
|
||||
windowTitleFontShadowColor->setColor( KomposeSettings::instance()->getWindowTitleFontShadowColor() );
|
||||
showWindowTitleShadow->setChecked( KomposeSettings::instance()->getShowWindowTitleShadow() );
|
||||
// Disable dependant widgets
|
||||
windowTitleFontBtn->setEnabled( KomposeSettings::instance()->getShowWindowTitles() );
|
||||
windowTitleFontColorLabel->setEnabled( KomposeSettings::instance()->getShowWindowTitles() );
|
||||
windowTitleFontColor->setEnabled( KomposeSettings::instance()->getShowWindowTitles() );
|
||||
showWindowTitleShadow->setEnabled( KomposeSettings::instance()->getShowWindowTitles() );
|
||||
windowTitleFontShadowColor->setEnabled( KomposeSettings::instance()->getShowWindowTitles() || KomposeSettings::instance()->getShowWindowTitleShadow() );
|
||||
|
||||
desktopTitleFont = new QFont(KomposeSettings::instance()->getDesktopTitleFont());
|
||||
desktopTitleFontColor->setColor( KomposeSettings::instance()->getDesktopTitleFontColor() );
|
||||
desktopTitleFontHighlightColor->setColor( KomposeSettings::instance()->getDesktopTitleFontHighlightColor() );
|
||||
|
||||
showIcons->setChecked( KomposeSettings::instance()->getShowIcons() );
|
||||
iconSize->setValue( KomposeSettings::instance()->getIconSize() );
|
||||
iconSize->setEnabled( showIcons->isChecked() );
|
||||
iconSizeDescription->setEnabled( showIcons->isChecked() );
|
||||
updateIconSliderDesc( iconSize->value() );
|
||||
|
||||
m_topLeftCorner->setChecked( KomposeSettings::instance()->getActivateOnTopLeftCorner() );
|
||||
m_bottomLeftCorner->setChecked( KomposeSettings::instance()->getActivateOnBottomLeftCorner() );
|
||||
m_topRightCorner->setChecked( KomposeSettings::instance()->getActivateOnTopRightCorner() );
|
||||
m_bottomRightCorner->setChecked( KomposeSettings::instance()->getActivateOnBottomRightCorner() );
|
||||
|
||||
m_topEdge->setChecked( KomposeSettings::instance()->getActivateOnTopEdge() );
|
||||
m_bottomEdge->setChecked( KomposeSettings::instance()->getActivateOnBottomEdge() );
|
||||
m_rightEdge->setChecked( KomposeSettings::instance()->getActivateOnRightEdge() );
|
||||
m_leftEdge->setChecked( KomposeSettings::instance()->getActivateOnLeftEdge() );
|
||||
autoLockDelay->setValue( KomposeSettings::instance()->getAutoLockDelay() );
|
||||
|
||||
if (m_hasXinerama)
|
||||
{
|
||||
m_viewScreenAll->setChecked( KomposeSettings::instance()->getViewScreen() == -1 );
|
||||
if (KomposeSettings::instance()->getViewScreen() >= 0 )
|
||||
m_viewScreen->setValue( KomposeSettings::instance()->getViewScreen() );
|
||||
m_viewScreen->setDisabled( m_viewScreenAll->isChecked() );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void KomposePreferences::slotApply()
|
||||
{
|
||||
KomposeSettings::instance()->setDefaultView( defaultViewBtnGroup->selectedId() );
|
||||
|
||||
#ifdef COMPOSITE
|
||||
KomposeSettings::instance()->setUseComposite( useComposite->isChecked() );
|
||||
#endif
|
||||
|
||||
KomposeSettings::instance()->setPassiveScreenshots( passiveScreenshots->isChecked() );
|
||||
KomposeSettings::instance()->setScreenshotGrabDelay( screenshotGrabDelay->value() * 1000000 );
|
||||
KomposeSettings::instance()->setCacheScaledPixmaps( cacheScaledPixmaps->isChecked() );
|
||||
KomposeSettings::instance()->setDynamicVirtDeskLayout( dynamicVirtDeskLayout->isChecked() );
|
||||
KomposeSettings::instance()->setImageEffects( imageEffects->isChecked() );
|
||||
KomposeSettings::instance()->setShowDesktopNum( showDesktopNum->isChecked() );
|
||||
|
||||
KomposeSettings::instance()->setShowWindowTitles( showWindowTitles->isChecked() );
|
||||
KomposeSettings::instance()->setWindowTitleFont( *windowTitleFont );
|
||||
KomposeSettings::instance()->setWindowTitleFontColor( windowTitleFontColor->color() );
|
||||
KomposeSettings::instance()->setWindowTitleFontShadowColor( windowTitleFontShadowColor->color() );
|
||||
KomposeSettings::instance()->setShowWindowTitleShadow( showWindowTitleShadow->isChecked() );
|
||||
|
||||
KomposeSettings::instance()->setDesktopTitleFont( *desktopTitleFont );
|
||||
KomposeSettings::instance()->setDesktopTitleFontColor( desktopTitleFontColor->color() );
|
||||
KomposeSettings::instance()->setDesktopTitleFontHighlightColor( desktopTitleFontHighlightColor->color() );
|
||||
|
||||
KomposeSettings::instance()->setShowIcons( showIcons->isChecked() );
|
||||
KomposeSettings::instance()->setIconSize( iconSize->value() );
|
||||
|
||||
KomposeSettings::instance()->setActivateOnTopLeftCorner( m_topLeftCorner->isChecked() );
|
||||
KomposeSettings::instance()->setActivateOnTopRighCorner( m_topRightCorner->isChecked() );
|
||||
KomposeSettings::instance()->setActivateOnBottomLeftCorner( m_bottomLeftCorner->isChecked() );
|
||||
KomposeSettings::instance()->setActivateOnBottomRightCorner( m_bottomRightCorner->isChecked() );
|
||||
|
||||
KomposeSettings::instance()->setActivateOnTopEdge( m_topEdge->isChecked() );
|
||||
KomposeSettings::instance()->setActivateOnRightEdge( m_rightEdge->isChecked() );
|
||||
KomposeSettings::instance()->setActivateOnBottomEdge( m_bottomEdge->isChecked() );
|
||||
KomposeSettings::instance()->setActivateOnLeftEdge( m_leftEdge->isChecked() );
|
||||
KomposeSettings::instance()->setAutoLockDelay( autoLockDelay->value() );
|
||||
|
||||
if (m_hasXinerama)
|
||||
{
|
||||
int viewScreen = m_viewScreen->value();
|
||||
if ( m_viewScreenAll->isChecked() )
|
||||
viewScreen = -1;
|
||||
KomposeSettings::instance()->setViewScreen( viewScreen );
|
||||
}
|
||||
|
||||
KomposeSettings::instance()->writeConfig();
|
||||
|
||||
KDialogBase::slotApply();
|
||||
}
|
||||
|
||||
void KomposePreferences::slotOk()
|
||||
{
|
||||
slotApply();
|
||||
KDialogBase::slotOk();
|
||||
}
|
||||
|
||||
void KomposePreferences::setUseCompositeToggled( bool )
|
||||
{}
|
||||
|
||||
#include "komposepreferences.moc"
|
@ -0,0 +1,291 @@
|
||||
//
|
||||
// C++ Implementation: komposepreferences
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <oisch@sourceforge.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposepreferences.h"
|
||||
|
||||
#include "komposesettings.h"
|
||||
|
||||
#include <qlayout.h>
|
||||
#include <qcheckbox.h>
|
||||
#include <qlabel.h>
|
||||
#include <kapplication.h>
|
||||
#include <qwhatsthis.h>
|
||||
#include <qtooltip.h>
|
||||
#include <qspinbox.h>
|
||||
#include <qgroupbox.h>
|
||||
#include <qbuttongroup.h>
|
||||
#include <qhbox.h>
|
||||
#include <qslider.h>
|
||||
#include <qpushbutton.h>
|
||||
#include <qgrid.h>
|
||||
#include <qvgroupbox.h>
|
||||
#include <qradiobutton.h>
|
||||
|
||||
#include <kiconloader.h>
|
||||
#include <kcolorbutton.h>
|
||||
#include <kfontdialog.h>
|
||||
|
||||
KomposePreferences::KomposePreferences()
|
||||
: KDialogBase(IconList, i18n(QString::fromUtf8("Komposé Preferences").utf8()), Ok|Apply|Cancel, Ok)
|
||||
{
|
||||
QFrame *page1 = addPage( i18n("Behavior"), QString::null, DesktopIcon("winprops", KIcon::SizeMedium) );
|
||||
QFrame *page2 = addPage( i18n("Appearance"), QString::null, DesktopIcon("appearance", KIcon::SizeMedium) );
|
||||
QFrame *page3 = addPage( i18n("Layouts"), QString::null, DesktopIcon("window_list", KIcon::SizeMedium) );
|
||||
|
||||
QVBoxLayout *page1Layout = new QVBoxLayout( page1, 0, KDialog::spacingHint() );
|
||||
|
||||
defaultViewBtnGroup = new QButtonGroup( 2, Horizontal, i18n("Default Layout"), page1 );
|
||||
defaultViewBtnGroup->setExclusive( true );
|
||||
QString defaultViewBtnGroupHelp = i18n("Determines which view should be started by default (e.g. when you click on the systray icon).");
|
||||
QWhatsThis::add( defaultViewBtnGroup, defaultViewBtnGroupHelp );
|
||||
QToolTip::add( defaultViewBtnGroup, defaultViewBtnGroupHelp );
|
||||
defaultViewWorld = new QRadioButton(i18n("Ungrouped"), defaultViewBtnGroup );
|
||||
QString defaultViewWorldHelp = i18n("Fullscreen layout that shows all windows in no specific order");
|
||||
QWhatsThis::add( defaultViewWorld, defaultViewWorldHelp );
|
||||
QToolTip::add( defaultViewWorld, defaultViewWorldHelp );
|
||||
defaultViewVirtualDesks = new QRadioButton(i18n("Grouped by virtual desktops"), defaultViewBtnGroup );
|
||||
QString defaultViewVirtualDesksHelp = i18n("Fullscreen layout that shows a representation of your virtual desktops\n and places the windows inside.");
|
||||
QWhatsThis::add( defaultViewVirtualDesks, defaultViewVirtualDesksHelp );
|
||||
QToolTip::add( defaultViewVirtualDesks, defaultViewVirtualDesksHelp );
|
||||
page1Layout->addWidget(defaultViewBtnGroup);
|
||||
|
||||
|
||||
QGroupBox *screenshotsGroupBox = new QGroupBox( 3, Vertical, i18n("Screenshots"), page1 );
|
||||
|
||||
passiveScreenshots = new QCheckBox(i18n("Passive screenshots"), screenshotsGroupBox);
|
||||
QString passiveScreenshotsHelp = i18n(QString::fromUtf8("Create a screenshot whenever you raise or active a window.\nWhen selected the amount the annoying popup-effect before every Komposé activation will be minimized to nearly zero.\nThe drawback is that the screenshots are not so recent and may not display the actual content.").utf8());
|
||||
QWhatsThis::add( passiveScreenshots, passiveScreenshotsHelp );
|
||||
QToolTip::add( passiveScreenshots, passiveScreenshotsHelp );
|
||||
|
||||
// onlyOneScreenshot = new QCheckBox(i18n("Only grab a screenshot when none exists"), screenshotsGroupBox);
|
||||
// QString onlyOneScreenshotHelp = i18n("When disabled new screenshots will be taken whenever possible.\nEnabling will only create a screenshot once the application is first activated and will never update it.");
|
||||
// QWhatsThis::add( onlyOneScreenshot, onlyOneScreenshotHelp );
|
||||
// QToolTip::add( onlyOneScreenshot, onlyOneScreenshotHelp );
|
||||
|
||||
QHBox *hLayScreenshotGrabDelay = new QHBox(screenshotsGroupBox);
|
||||
QLabel *screenshotGrabDelayLabel = new QLabel(i18n("Delay between screenshots (ms):"), hLayScreenshotGrabDelay);
|
||||
screenshotGrabDelay = new QSpinBox(0, 2000, 1, hLayScreenshotGrabDelay);
|
||||
screenshotGrabDelayLabel->setBuddy(screenshotGrabDelay);
|
||||
QString screenshotGrabDelayHelp = i18n("Specifies the time to wait between the activation of a window and the screenshot taking.\nIncrease it when your windows need more time to draw themselves after activation.\nValues below 300ms are not recommended, but may work in some cases." );
|
||||
QWhatsThis::add( screenshotGrabDelay, screenshotGrabDelayHelp );
|
||||
QToolTip::add( screenshotGrabDelay, screenshotGrabDelayHelp );
|
||||
QWhatsThis::add( screenshotGrabDelayLabel, screenshotGrabDelayHelp );
|
||||
QToolTip::add( screenshotGrabDelayLabel, screenshotGrabDelayHelp );
|
||||
|
||||
page1Layout->addWidget(screenshotsGroupBox);
|
||||
|
||||
page1Layout->insertStretch(-1);
|
||||
|
||||
|
||||
|
||||
QVBoxLayout *page2Layout = new QVBoxLayout( page2, 0, KDialog::spacingHint() );
|
||||
|
||||
imageEffects = new QCheckBox(i18n("Enable image effects"), page2);
|
||||
QString imageEffectsHelp = i18n("Lighten windows when the mouse moves over it or gray out minimized windows.\nDepending on your system specs this can be a bit slower." );
|
||||
QWhatsThis::add( imageEffects, imageEffectsHelp );
|
||||
QToolTip::add( imageEffects, imageEffectsHelp );
|
||||
page2Layout->addWidget(imageEffects);
|
||||
|
||||
|
||||
QGroupBox *windowTitleGroupBox = new QGroupBox( 3, Vertical, i18n("Window Titles"), page2 );
|
||||
|
||||
QHBox *hBoxWindowTitles = new QHBox(windowTitleGroupBox);
|
||||
showWindowTitles = new QCheckBox(i18n("Show window titles"), hBoxWindowTitles);
|
||||
windowTitleFontBtn = new QPushButton(i18n("Select Font..."), hBoxWindowTitles);
|
||||
QString showWindowTitlesHelp = i18n( QString::fromUtf8("Display the name of every window in Komposé") );
|
||||
QWhatsThis::add( showWindowTitles, showWindowTitlesHelp );
|
||||
QToolTip::add( showWindowTitles, showWindowTitlesHelp );
|
||||
connect( showWindowTitles, SIGNAL(toggled(bool)), windowTitleFontBtn, SLOT(setEnabled(bool)) );
|
||||
connect( windowTitleFontBtn, SIGNAL(clicked()), this, SLOT(showWindowTitleFontDialog()) );
|
||||
|
||||
QGrid *gridWindowTitlesColor = new QGrid(2, windowTitleGroupBox);
|
||||
// windowTitleFontColorLabel = new QLabel(windowTitleFontColor, i18n("Text color: "), gridWindowTitlesColor); // FIXME: How to link to a buddy that doesn't yet exist?
|
||||
windowTitleFontColorLabel = new QLabel(i18n("Text color:"), gridWindowTitlesColor);
|
||||
windowTitleFontColor = new KColorButton(Qt::black, gridWindowTitlesColor);
|
||||
connect( showWindowTitles, SIGNAL(toggled(bool)), windowTitleFontColorLabel, SLOT(setEnabled(bool)) );
|
||||
connect( showWindowTitles, SIGNAL(toggled(bool)), windowTitleFontColor, SLOT(setEnabled(bool)) );
|
||||
showWindowTitleShadow = new QCheckBox(i18n("Shadow color:"), gridWindowTitlesColor);
|
||||
windowTitleFontShadowColor = new KColorButton(Qt::lightGray, gridWindowTitlesColor);
|
||||
connect( showWindowTitles, SIGNAL(toggled(bool)), showWindowTitleShadow, SLOT(setEnabled(bool)) );
|
||||
connect( showWindowTitles, SIGNAL(toggled(bool)), windowTitleFontShadowColor, SLOT(setEnabled(bool)) );
|
||||
connect( showWindowTitleShadow, SIGNAL(toggled(bool)), windowTitleFontShadowColor, SLOT(setEnabled(bool)) );
|
||||
|
||||
page2Layout->addWidget(windowTitleGroupBox);
|
||||
|
||||
|
||||
|
||||
QGroupBox *iconGroupBox = new QGroupBox( 3, Vertical, i18n("Task Icons"), page2 );
|
||||
showIcons = new QCheckBox(i18n("Show icons"), iconGroupBox);
|
||||
iconSize = new QSlider(0, 3, 1, 0, Qt::Horizontal, iconGroupBox);
|
||||
iconSizeDescription = new QLabel( iconSize, "", iconGroupBox);
|
||||
connect( iconSize, SIGNAL( sliderMoved(int) ), this, SLOT( updateIconSliderDesc(int) ) );
|
||||
connect( iconSize, SIGNAL( valueChanged(int) ), this, SLOT( updateIconSliderDesc(int) ) );
|
||||
connect( showIcons, SIGNAL( toggled(bool) ), iconSize, SLOT( setEnabled(bool) ) );
|
||||
connect( showIcons, SIGNAL( toggled(bool) ), iconSizeDescription, SLOT( setEnabled(bool) ) );
|
||||
page2Layout->addWidget(iconGroupBox);
|
||||
|
||||
page2Layout->insertStretch(-1);
|
||||
|
||||
|
||||
|
||||
QVBoxLayout *page3Layout = new QVBoxLayout( page3, 0, KDialog::spacingHint() );
|
||||
|
||||
QVGroupBox *virtDesksLayoutGroupBox = new QVGroupBox( i18n("Grouped by Virtual Desktops"), page3 );
|
||||
dynamicVirtDeskLayout = new QCheckBox(i18n("Layout empty virtual desktops minimized"), virtDesksLayoutGroupBox );
|
||||
QString dynamicVirtDeskLayoutHelp = i18n("Check this if you want empty virtual desktops to take less space on the screen.\nUncheck it if you want them to be arranged statically, each of the same size.");
|
||||
QWhatsThis::add( dynamicVirtDeskLayout, dynamicVirtDeskLayoutHelp );
|
||||
QToolTip::add( dynamicVirtDeskLayout, dynamicVirtDeskLayoutHelp );
|
||||
|
||||
QGrid *desktopColorsGroupBox = new QGrid( 2, virtDesksLayoutGroupBox );
|
||||
desktopColorsGroupBox->setSpacing( 4 );
|
||||
tintVirtDesks = new QCheckBox(i18n("Tint virtual desktop widgets:"), desktopColorsGroupBox);
|
||||
tintVirtDesksColor = new KColorButton(Qt::blue, desktopColorsGroupBox);
|
||||
QString tintVirtDesksHelp = i18n("Colorize the transparent background of the virtual desktop widgets" );
|
||||
QWhatsThis::add( tintVirtDesks, tintVirtDesksHelp );
|
||||
QToolTip::add( tintVirtDesks, tintVirtDesksHelp );
|
||||
QWhatsThis::add( tintVirtDesksColor, tintVirtDesksHelp );
|
||||
QToolTip::add( tintVirtDesksColor, tintVirtDesksHelp );
|
||||
connect( tintVirtDesks, SIGNAL(toggled(bool)), tintVirtDesksColor, SLOT(setEnabled(bool)) );
|
||||
desktopTitleFontColorLabel = new QLabel(i18n("Desktop frame color:"), desktopColorsGroupBox);
|
||||
desktopTitleFontColor = new KColorButton(Qt::black, desktopColorsGroupBox);
|
||||
desktopTitleFontHighlightColorLabel = new QLabel(i18n("Desktop frame highlight color:"), desktopColorsGroupBox);
|
||||
desktopTitleFontHighlightColor = new KColorButton(Qt::black, desktopColorsGroupBox);
|
||||
|
||||
page3Layout->addWidget(virtDesksLayoutGroupBox);
|
||||
|
||||
desktopTitleFontBtn = new QPushButton(i18n("Select Desktop Names Font..."), virtDesksLayoutGroupBox);
|
||||
connect( desktopTitleFontBtn, SIGNAL(clicked()), this, SLOT(showDesktopTitleFontDialog()) );
|
||||
|
||||
page3Layout->insertStretch(-1);
|
||||
|
||||
|
||||
fillPages();
|
||||
}
|
||||
|
||||
|
||||
KomposePreferences::~KomposePreferences()
|
||||
{}
|
||||
|
||||
void KomposePreferences::updateIconSliderDesc( int val )
|
||||
{
|
||||
switch( val )
|
||||
{
|
||||
case 0:
|
||||
iconSizeDescription->setText( i18n("16x16") );
|
||||
break;
|
||||
case 1:
|
||||
iconSizeDescription->setText( i18n("32x32") );
|
||||
break;
|
||||
case 2:
|
||||
iconSizeDescription->setText( i18n("64x64") );
|
||||
break;
|
||||
case 3:
|
||||
iconSizeDescription->setText( i18n("Don't scale, show as they are (preferably bigger)") );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void KomposePreferences::showWindowTitleFontDialog()
|
||||
{
|
||||
KFontDialog::getFont( *windowTitleFont );
|
||||
// if ( result == KFontDialog::Accepted )
|
||||
}
|
||||
|
||||
void KomposePreferences::showDesktopTitleFontDialog()
|
||||
{
|
||||
KFontDialog::getFont( *desktopTitleFont );
|
||||
}
|
||||
|
||||
void KomposePreferences::fillPages()
|
||||
{
|
||||
// Sync Settings to Preferences dialog
|
||||
switch ( KomposeSettings::instance()->getDefaultView() )
|
||||
{
|
||||
case KOMPOSEDISPLAY_VIRTUALDESKS:
|
||||
defaultViewVirtualDesks->setChecked( true );
|
||||
break;
|
||||
case KOMPOSEDISPLAY_WORLD:
|
||||
defaultViewWorld->setChecked( true );
|
||||
break;
|
||||
}
|
||||
|
||||
passiveScreenshots->setChecked( KomposeSettings::instance()->getPassiveScreenshots() );
|
||||
screenshotGrabDelay->setValue( KomposeSettings::instance()->getScreenshotGrabDelay() / 1000000 );
|
||||
dynamicVirtDeskLayout->setChecked( KomposeSettings::instance()->getDynamicVirtDeskLayout() );
|
||||
|
||||
imageEffects->setChecked( KomposeSettings::instance()->getImageEffects() );
|
||||
tintVirtDesks->setChecked( KomposeSettings::instance()->getTintVirtDesks() );
|
||||
tintVirtDesksColor->setColor( KomposeSettings::instance()->getTintVirtDesksColor() );
|
||||
tintVirtDesksColor->setEnabled( KomposeSettings::instance()->getTintVirtDesks() );
|
||||
|
||||
showWindowTitles->setChecked( KomposeSettings::instance()->getShowWindowTitles() );
|
||||
windowTitleFont = new QFont(KomposeSettings::instance()->getWindowTitleFont());
|
||||
windowTitleFontColor->setColor( KomposeSettings::instance()->getWindowTitleFontColor() );
|
||||
windowTitleFontShadowColor->setColor( KomposeSettings::instance()->getWindowTitleFontShadowColor() );
|
||||
showWindowTitleShadow->setChecked( KomposeSettings::instance()->getShowWindowTitleShadow() );
|
||||
// Disable dependant widgets
|
||||
windowTitleFontBtn->setEnabled( KomposeSettings::instance()->getShowWindowTitles() );
|
||||
windowTitleFontColorLabel->setEnabled( KomposeSettings::instance()->getShowWindowTitles() );
|
||||
windowTitleFontColor->setEnabled( KomposeSettings::instance()->getShowWindowTitles() );
|
||||
showWindowTitleShadow->setEnabled( KomposeSettings::instance()->getShowWindowTitles() );
|
||||
windowTitleFontShadowColor->setEnabled( KomposeSettings::instance()->getShowWindowTitles() || KomposeSettings::instance()->getShowWindowTitleShadow() );
|
||||
|
||||
desktopTitleFont = new QFont(KomposeSettings::instance()->getDesktopTitleFont());
|
||||
desktopTitleFontColor->setColor( KomposeSettings::instance()->getDesktopTitleFontColor() );
|
||||
desktopTitleFontHighlightColor->setColor( KomposeSettings::instance()->getDesktopTitleFontHighlightColor() );
|
||||
|
||||
showIcons->setChecked( KomposeSettings::instance()->getShowIcons() );
|
||||
iconSize->setValue( KomposeSettings::instance()->getIconSize() );
|
||||
iconSize->setEnabled( showIcons->isChecked() );
|
||||
iconSizeDescription->setEnabled( showIcons->isChecked() );
|
||||
updateIconSliderDesc( iconSize->value() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void KomposePreferences::slotApply()
|
||||
{
|
||||
KomposeSettings::instance()->setDefaultView( defaultViewBtnGroup->selectedId() );
|
||||
|
||||
KomposeSettings::instance()->setPassiveScreenshots( passiveScreenshots->isChecked() );
|
||||
KomposeSettings::instance()->setScreenshotGrabDelay( screenshotGrabDelay->value() * 1000000 );
|
||||
KomposeSettings::instance()->setDynamicVirtDeskLayout( dynamicVirtDeskLayout->isChecked() );
|
||||
KomposeSettings::instance()->setImageEffects( imageEffects->isChecked() );
|
||||
KomposeSettings::instance()->setTintVirtDesks( tintVirtDesks->isChecked() );
|
||||
KomposeSettings::instance()->setTintVirtDesksColor( tintVirtDesksColor->color() );
|
||||
|
||||
KomposeSettings::instance()->setShowWindowTitles( showWindowTitles->isChecked() );
|
||||
KomposeSettings::instance()->setWindowTitleFont( *windowTitleFont );
|
||||
KomposeSettings::instance()->setWindowTitleFontColor( windowTitleFontColor->color() );
|
||||
KomposeSettings::instance()->setWindowTitleFontShadowColor( windowTitleFontShadowColor->color() );
|
||||
KomposeSettings::instance()->setShowWindowTitleShadow( showWindowTitleShadow->isChecked() );
|
||||
|
||||
KomposeSettings::instance()->setDesktopTitleFont( *desktopTitleFont );
|
||||
KomposeSettings::instance()->setDesktopTitleFontColor( desktopTitleFontColor->color() );
|
||||
KomposeSettings::instance()->setDesktopTitleFontHighlightColor( desktopTitleFontHighlightColor->color() );
|
||||
|
||||
KomposeSettings::instance()->setShowIcons( showIcons->isChecked() );
|
||||
KomposeSettings::instance()->setIconSize( iconSize->value() );
|
||||
|
||||
KomposeSettings::instance()->writeConfig();
|
||||
|
||||
KDialogBase::slotApply();
|
||||
}
|
||||
|
||||
void KomposePreferences::slotOk()
|
||||
{
|
||||
slotApply();
|
||||
KDialogBase::slotOk();
|
||||
}
|
||||
|
||||
|
||||
#include "komposepreferences.moc"
|
@ -0,0 +1,109 @@
|
||||
//
|
||||
// C++ Interface: komposepreferences
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#ifndef KOMPOSEPREFERENCES_H
|
||||
#define KOMPOSEPREFERENCES_H
|
||||
|
||||
#include <kdialogbase.h>
|
||||
|
||||
#include <klocale.h>
|
||||
|
||||
class QCheckBox;
|
||||
class QFrame;
|
||||
class QSpinBox;
|
||||
class KColorButton;
|
||||
class QButtonGroup;
|
||||
class QSlider;
|
||||
class QPushButton;
|
||||
class QFont;
|
||||
class QRadioButton;
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposePreferences : public KDialogBase
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KomposePreferences();
|
||||
|
||||
~KomposePreferences();
|
||||
|
||||
|
||||
protected:
|
||||
void fillPages();
|
||||
|
||||
protected slots:
|
||||
void slotApply();
|
||||
void slotOk();
|
||||
void updateIconSliderDesc( int );
|
||||
void showDesktopTitleFontDialog();
|
||||
void showWindowTitleFontDialog();
|
||||
void setUseCompositeToggled( bool );
|
||||
|
||||
private:
|
||||
bool m_hasXinerama;
|
||||
QFrame *page1;
|
||||
QFrame *page2;
|
||||
|
||||
QButtonGroup *defaultViewBtnGroup;
|
||||
QRadioButton *defaultViewWorld;
|
||||
QRadioButton *defaultViewVirtualDesks;
|
||||
QRadioButton *defaultViewCurrentDesk;
|
||||
|
||||
QCheckBox *useComposite;
|
||||
|
||||
QCheckBox *passiveScreenshots;
|
||||
QCheckBox *dynamicVirtDeskLayout;
|
||||
QCheckBox *cacheScaledPixmaps;
|
||||
|
||||
QCheckBox *imageEffects;
|
||||
|
||||
QSpinBox *screenshotGrabDelay;
|
||||
|
||||
QCheckBox *showIcons;
|
||||
QSlider *iconSize;
|
||||
QLabel *iconSizeDescription;
|
||||
|
||||
QCheckBox *showWindowTitles;
|
||||
QPushButton *windowTitleFontBtn;
|
||||
QFont *windowTitleFont;
|
||||
|
||||
KColorButton *windowTitleFontColor;
|
||||
QCheckBox *showWindowTitleShadow;
|
||||
KColorButton *windowTitleFontShadowColor;
|
||||
QLabel *windowTitleFontColorLabel;
|
||||
|
||||
QPushButton *desktopTitleFontBtn;
|
||||
QLabel *desktopTitleFontColorLabel;
|
||||
QLabel *desktopTitleFontHighlightColorLabel;
|
||||
KColorButton *desktopTitleFontColor;
|
||||
KColorButton *desktopTitleFontHighlightColor;
|
||||
QFont *desktopTitleFont;
|
||||
|
||||
QCheckBox *m_topLeftCorner;
|
||||
QCheckBox *m_bottomLeftCorner;
|
||||
QCheckBox *m_topRightCorner;
|
||||
QCheckBox *m_bottomRightCorner;
|
||||
|
||||
QCheckBox *m_topEdge;
|
||||
QCheckBox *m_bottomEdge;
|
||||
QCheckBox *m_rightEdge;
|
||||
QCheckBox *m_leftEdge;
|
||||
QSpinBox *autoLockDelay;
|
||||
|
||||
QCheckBox *showDesktopNum;
|
||||
|
||||
QSpinBox *m_viewScreen;
|
||||
QCheckBox *m_viewScreenAll;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,235 @@
|
||||
//
|
||||
// C++ Implementation: komposesettings
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposesettings.h"
|
||||
|
||||
#include "komposeviewmanager.h"
|
||||
#include "komposetaskmanager.h"
|
||||
#include "komposepreferences.h"
|
||||
|
||||
#include <qcolor.h>
|
||||
|
||||
#include <kglobalaccel.h>
|
||||
#include <kapplication.h>
|
||||
#include <kconfig.h>
|
||||
#include <kglobal.h>
|
||||
#include <kiconloader.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
static KomposeSettings* settingsInstance = 0;
|
||||
|
||||
|
||||
/*
|
||||
* KomposeSettings is a singleton
|
||||
*/
|
||||
KomposeSettings* KomposeSettings::instance()
|
||||
{
|
||||
if ( !settingsInstance )
|
||||
{
|
||||
// kdDebug() << "KomposeSettings::instance() - Creating Singleton instance"); // FIXME: How can this apper multiple times??
|
||||
settingsInstance = new KomposeSettings();
|
||||
}
|
||||
return settingsInstance;
|
||||
}
|
||||
|
||||
|
||||
KomposeSettings::KomposeSettings(QObject *parent, const char *name)
|
||||
: QObject(parent, name),
|
||||
dialogOpen(0),
|
||||
windowTitleFontMetrics(0)
|
||||
{
|
||||
|
||||
// Init global shortcut object
|
||||
globalAccel = new KGlobalAccel( this );
|
||||
globalAccel->insert( "showDefaultView", i18n("Show Komposé (default view)"),
|
||||
i18n("Displays the view you have configured as default"),
|
||||
KKey::QtWIN+Key_Tab, KKey::QtWIN+CTRL+SHIFT+Key_Tab,
|
||||
KomposeViewManager::instance(), SLOT(createDefaultView()) );
|
||||
globalAccel->insert( "showWorldView", i18n("Show Komposé (ungrouped)"),
|
||||
i18n("Displays all windows unsorted"),
|
||||
CTRL+SHIFT+Key_J, KKey::QtWIN+CTRL+SHIFT+Key_J,
|
||||
KomposeViewManager::instance(), SLOT(createWorldView()) );
|
||||
globalAccel->insert( "showVirtualDesktopView", i18n("Show Komposé (grouped by virtual desktops)"),
|
||||
i18n("Displays all windows sorted by virtual desktops"),
|
||||
CTRL+SHIFT+Key_I, KKey::QtWIN+CTRL+SHIFT+Key_I,
|
||||
KomposeViewManager::instance(), SLOT(createVirtualDesktopView()) );
|
||||
globalAccel->insert( "showCurrentDesktopView", i18n("Show Komposé (current virtual desktop)"),
|
||||
i18n("Displays all windows on the current desktop"),
|
||||
CTRL+SHIFT+Key_K, KKey::QtWIN+CTRL+SHIFT+Key_K,
|
||||
KomposeViewManager::instance(), SLOT(createCurrentDesktopView()) );
|
||||
|
||||
// read Settings from cfg file
|
||||
readConfig();
|
||||
|
||||
settingsInstance = this;
|
||||
}
|
||||
|
||||
|
||||
KomposeSettings::~KomposeSettings()
|
||||
{
|
||||
delete globalAccel;
|
||||
delete settingsInstance;
|
||||
}
|
||||
|
||||
|
||||
void KomposeSettings::readConfig()
|
||||
{
|
||||
kdDebug() << "KomposeSettings::readConfig()" << endl;
|
||||
// Read Shortcut Settings from config
|
||||
globalAccel->readSettings();
|
||||
globalAccel->updateConnections();
|
||||
|
||||
kapp->config()->setGroup("Main window");
|
||||
|
||||
defaultView = kapp->config()->readNumEntry("defaultView", KOMPOSEDISPLAY_VIRTUALDESKS);
|
||||
|
||||
useComposite = kapp->config()->readBoolEntry("useComposite", false);
|
||||
|
||||
passiveScreenshots = kapp->config()->readBoolEntry("passiveScreenshots", true);
|
||||
screenshotGrabDelay = kapp->config()->readNumEntry("screenshotGrabDelay", 400000000);
|
||||
|
||||
dynamicVirtDeskLayout = kapp->config()->readBoolEntry("dynamicVirtDeskLayout", true);
|
||||
|
||||
imageEffects = kapp->config()->readBoolEntry("imageEffects", true);
|
||||
|
||||
showIcons = kapp->config()->readBoolEntry("showIcons", true);
|
||||
iconSize = kapp->config()->readNumEntry("iconSize", 3);
|
||||
|
||||
showWindowTitles = kapp->config()->readBoolEntry("showWindowTitles", true );
|
||||
windowTitleFont = kapp->config()->readFontEntry("windowTitleFont", new QFont( "arial", 11, QFont::Bold ) );
|
||||
windowTitleFontColor = kapp->config()->readColorEntry("windowTitleFontColor", new QColor(Qt::black) );
|
||||
showWindowTitleShadow = kapp->config()->readBoolEntry("showWindowTitleShadow", true );
|
||||
windowTitleFontShadowColor = kapp->config()->readColorEntry("windowTitleFontShadowColor", new QColor(Qt::lightGray) );
|
||||
|
||||
desktopTitleFont = kapp->config()->readFontEntry("desktopTitleFont", new QFont( "arial", 10 ) );
|
||||
desktopTitleFontColor = kapp->config()->readColorEntry("desktopTitleFontColor", new QColor(Qt::gray) );
|
||||
desktopTitleFontHighlightColor = kapp->config()->readColorEntry("desktopTitleFontHighlightColor", new QColor(Qt::black) );
|
||||
|
||||
cacheScaledPixmaps = kapp->config()->readBoolEntry("cacheScaledPixmaps", true);
|
||||
|
||||
activateOnTopLeftCorner = kapp->config()->readBoolEntry("activateOnTopLeftCorner", false );
|
||||
activateOnTopRightCorner = kapp->config()->readBoolEntry("activateOnTopRightCorner", false );
|
||||
activateOnBottomLeftCorner = kapp->config()->readBoolEntry("activateOnBottomLeftCorner", false );
|
||||
activateOnBottomRightCorner = kapp->config()->readBoolEntry("activateOnBottomRightCorner", false );
|
||||
|
||||
activateOnTopEdge = kapp->config()->readBoolEntry("activateOnTopEdge", false );
|
||||
activateOnBottomEdge = kapp->config()->readBoolEntry("activateOnBottomEdge", false );
|
||||
activateOnLeftEdge = kapp->config()->readBoolEntry("activateOnLeftEdge", false );
|
||||
activateOnRightEdge = kapp->config()->readBoolEntry("activateOnRightEdge", false );
|
||||
|
||||
autoLockDelay = kapp->config()->readNumEntry("autoLockDelay", 1000);
|
||||
|
||||
showDesktopNum = kapp->config()->readBoolEntry("showDesktopNum", false );
|
||||
|
||||
viewScreen = kapp->config()->readNumEntry("viewScreen", -1);
|
||||
|
||||
calcFontMetrics();
|
||||
emit settingsChanged();
|
||||
}
|
||||
|
||||
void KomposeSettings::writeConfig()
|
||||
{
|
||||
kdDebug() << "KomposeSettings::writeConfig()" << endl;
|
||||
|
||||
globalAccel->writeSettings();
|
||||
globalAccel->updateConnections();
|
||||
|
||||
// Read from config file
|
||||
kapp->config()->setGroup("Main window");
|
||||
|
||||
kapp->config()->writeEntry("defaultView", defaultView );
|
||||
|
||||
kapp->config()->writeEntry("useComposite", useComposite );
|
||||
|
||||
kapp->config()->writeEntry("passiveScreenshots", passiveScreenshots );
|
||||
kapp->config()->writeEntry("screenshotGrabDelay", screenshotGrabDelay);
|
||||
|
||||
kapp->config()->writeEntry("dynamicVirtDeskLayout", dynamicVirtDeskLayout);
|
||||
|
||||
kapp->config()->writeEntry("imageEffects", imageEffects);
|
||||
|
||||
kapp->config()->writeEntry("showIcons", showIcons);
|
||||
kapp->config()->writeEntry("iconSize", iconSize);
|
||||
|
||||
kapp->config()->writeEntry("showWindowTitles", showWindowTitles);
|
||||
kapp->config()->writeEntry("windowTitleFont", windowTitleFont);
|
||||
kapp->config()->writeEntry("windowTitleFontColor", windowTitleFontColor);
|
||||
kapp->config()->writeEntry("showWindowTitleShadow", showWindowTitleShadow);
|
||||
kapp->config()->writeEntry("windowTitleFontShadowColor", windowTitleFontShadowColor);
|
||||
|
||||
kapp->config()->writeEntry("desktopTitleFont", desktopTitleFont);
|
||||
kapp->config()->writeEntry("desktopTitleFontColor", desktopTitleFontColor);
|
||||
kapp->config()->writeEntry("desktopTitleFontHighlightColor", desktopTitleFontHighlightColor);
|
||||
|
||||
kapp->config()->writeEntry("cacheScaledPixmaps", cacheScaledPixmaps);
|
||||
|
||||
kapp->config()->writeEntry("activateOnTopLeftCorner", activateOnTopLeftCorner);
|
||||
kapp->config()->writeEntry("activateOnTopRightCorner", activateOnTopRightCorner);
|
||||
kapp->config()->writeEntry("activateOnBottomLeftCorner", activateOnBottomLeftCorner);
|
||||
kapp->config()->writeEntry("activateOnBottomRightCorner", activateOnBottomRightCorner);
|
||||
|
||||
kapp->config()->writeEntry("activateOnTopEdge", activateOnTopEdge);
|
||||
kapp->config()->writeEntry("activateOnBottomEdge", activateOnBottomEdge);
|
||||
kapp->config()->writeEntry("activateOnLeftEdge", activateOnLeftEdge);
|
||||
kapp->config()->writeEntry("activateOnRightEdge", activateOnRightEdge);
|
||||
kapp->config()->writeEntry("autoLockDelay", autoLockDelay);
|
||||
|
||||
kapp->config()->writeEntry("showDesktopNum", showDesktopNum);
|
||||
|
||||
kapp->config()->writeEntry("viewScreen", viewScreen);
|
||||
|
||||
kapp->config()->sync();
|
||||
|
||||
kdDebug() << "KomposeSettings::writeConfig() - Settings saved to cfg file" << endl;
|
||||
|
||||
calcFontMetrics();
|
||||
emit settingsChanged();
|
||||
}
|
||||
|
||||
|
||||
void KomposeSettings::showPreferencesDlg()
|
||||
{
|
||||
dialogOpen = true;
|
||||
// popup preference dialog
|
||||
KomposePreferences *dlg = new KomposePreferences();
|
||||
|
||||
dlg->exec();
|
||||
|
||||
delete dlg;
|
||||
dialogOpen = false;
|
||||
}
|
||||
|
||||
int KomposeSettings::getIconSizePixels()
|
||||
{
|
||||
switch( iconSize )
|
||||
{
|
||||
case 0:
|
||||
return 16;
|
||||
case 1:
|
||||
return 32;
|
||||
case 2:
|
||||
return 64;
|
||||
case 3:
|
||||
return -1;
|
||||
}
|
||||
return 32;
|
||||
}
|
||||
|
||||
void KomposeSettings::calcFontMetrics()
|
||||
{
|
||||
if (windowTitleFontMetrics != 0)
|
||||
delete windowTitleFontMetrics;
|
||||
windowTitleFontMetrics = new QFontMetrics( windowTitleFont );
|
||||
windowTitleFontAscent = windowTitleFontMetrics->ascent();
|
||||
windowTitleFontHeight = windowTitleFontMetrics->height();
|
||||
}
|
||||
|
||||
#include "komposesettings.moc"
|
@ -0,0 +1,174 @@
|
||||
//
|
||||
// C++ Interface: komposesettings
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#ifndef KOMPOSESETTINGS_H
|
||||
#define KOMPOSESETTINGS_H
|
||||
|
||||
#include <qobject.h>
|
||||
#include <qcolor.h>
|
||||
#include <qfont.h>
|
||||
|
||||
#define MAX_DESKTOPS 16
|
||||
|
||||
enum KomposeDisplay { KOMPOSEDISPLAY_WORLD, KOMPOSEDISPLAY_VIRTUALDESKS, KOMPOSEDISPLAY_CURRENTDESK };
|
||||
|
||||
class KGlobalAccel;
|
||||
class QFontMetrics;
|
||||
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeSettings : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
protected:
|
||||
KomposeSettings(QObject *parent = 0, const char *name = 0);
|
||||
|
||||
~KomposeSettings();
|
||||
|
||||
public:
|
||||
static KomposeSettings *instance();
|
||||
void readConfig();
|
||||
void writeConfig();
|
||||
|
||||
bool hasDialogOpen() { return dialogOpen; }
|
||||
KGlobalAccel *getGlobalAccel() const { return globalAccel; }
|
||||
|
||||
bool getUseComposite() const { return useComposite; }
|
||||
void setUseComposite( bool b ) { useComposite = b; }
|
||||
|
||||
bool getPassiveScreenshots() const { return passiveScreenshots; }
|
||||
void setPassiveScreenshots( bool b ) { passiveScreenshots = b; }
|
||||
uint getScreenshotGrabDelay() { return screenshotGrabDelay; }
|
||||
void setScreenshotGrabDelay( uint val ) { screenshotGrabDelay=val; }
|
||||
bool getDynamicVirtDeskLayout() const { return dynamicVirtDeskLayout; }
|
||||
void setDynamicVirtDeskLayout( bool b ) { dynamicVirtDeskLayout = b; }
|
||||
bool getImageEffects() const { return imageEffects; }
|
||||
void setImageEffects( bool b ) { imageEffects = b; }
|
||||
|
||||
int getDefaultView() const { return defaultView; }
|
||||
void setDefaultView( int d ) { defaultView = d; }
|
||||
int getIconSize() { return iconSize; }
|
||||
void setIconSize( int i ) { iconSize = i; }
|
||||
int getShowIcons() { return showIcons; }
|
||||
void setShowIcons( bool b ) { showIcons = b; }
|
||||
int getIconSizePixels();
|
||||
|
||||
void setWindowTitleFont( QFont f ) { windowTitleFont = f; }
|
||||
const QFont& getWindowTitleFont() const { return windowTitleFont; }
|
||||
int getShowWindowTitles() { return showWindowTitles; }
|
||||
void setShowWindowTitles( bool b ) { showWindowTitles = b; }
|
||||
int getShowWindowTitleShadow() { return showWindowTitleShadow; }
|
||||
void setShowWindowTitleShadow( bool b ) { showWindowTitleShadow = b; }
|
||||
const QColor& getWindowTitleFontColor() const { return windowTitleFontColor; }
|
||||
void setWindowTitleFontColor( QColor c ) { windowTitleFontColor = c; }
|
||||
const QColor& getWindowTitleFontShadowColor() const { return windowTitleFontShadowColor; }
|
||||
void setWindowTitleFontShadowColor( QColor c ) { windowTitleFontShadowColor = c; }
|
||||
|
||||
const QFontMetrics* getWindowTitleFontMetrics() { return windowTitleFontMetrics; }
|
||||
int getWindowTitleFontAscent() { return windowTitleFontAscent; }
|
||||
int getWindowTitleFontHeight() { return windowTitleFontHeight; }
|
||||
|
||||
void setDesktopTitleFont( QFont f ) { desktopTitleFont = f; }
|
||||
const QFont& getDesktopTitleFont() const { return desktopTitleFont; }
|
||||
const QColor& getDesktopTitleFontColor() const { return desktopTitleFontColor; }
|
||||
void setDesktopTitleFontColor( QColor c ) { desktopTitleFontColor = c; }
|
||||
const QColor& getDesktopTitleFontHighlightColor() const { return desktopTitleFontHighlightColor; }
|
||||
void setDesktopTitleFontHighlightColor( QColor c ) { desktopTitleFontHighlightColor = c; }
|
||||
|
||||
bool getCacheScaledPixmaps() const { return cacheScaledPixmaps; }
|
||||
void setCacheScaledPixmaps( bool b ) { cacheScaledPixmaps = b; }
|
||||
|
||||
bool getActivateOnTopLeftCorner() const { return activateOnTopLeftCorner; }
|
||||
void setActivateOnTopLeftCorner( bool b ) { activateOnTopLeftCorner = b; }
|
||||
bool getActivateOnTopRightCorner() const { return activateOnTopRightCorner; }
|
||||
void setActivateOnTopRighCorner( bool b ) { activateOnTopRightCorner = b; }
|
||||
bool getActivateOnBottomLeftCorner() const { return activateOnBottomLeftCorner; }
|
||||
void setActivateOnBottomLeftCorner( bool b ) { activateOnBottomLeftCorner = b; }
|
||||
bool getActivateOnBottomRightCorner() const { return activateOnBottomRightCorner; }
|
||||
void setActivateOnBottomRightCorner( bool b ) { activateOnBottomRightCorner = b; }
|
||||
|
||||
bool getActivateOnTopEdge() const { return activateOnTopEdge; }
|
||||
void setActivateOnTopEdge( bool b ) { activateOnTopEdge = b; }
|
||||
bool getActivateOnLeftEdge() const { return activateOnLeftEdge; }
|
||||
void setActivateOnLeftEdge( bool b ) { activateOnLeftEdge= b; }
|
||||
bool getActivateOnBottomEdge() const { return activateOnBottomEdge; }
|
||||
void setActivateOnBottomEdge( bool b ) { activateOnBottomEdge = b; }
|
||||
bool getActivateOnRightEdge() const { return activateOnRightEdge; }
|
||||
void setActivateOnRightEdge( bool b ) { activateOnRightEdge = b; }
|
||||
|
||||
uint getAutoLockDelay() { return autoLockDelay; }
|
||||
void setAutoLockDelay( uint val ) { autoLockDelay=val; }
|
||||
|
||||
void setShowDesktopNum( bool b ) { showDesktopNum = b; }
|
||||
bool getShowDesktopNum() const { return showDesktopNum; }
|
||||
|
||||
void setViewScreen( int screen ) { viewScreen = screen; }
|
||||
int getViewScreen() const { return viewScreen; }
|
||||
|
||||
public slots:
|
||||
void showPreferencesDlg();
|
||||
|
||||
protected slots:
|
||||
void calcFontMetrics();
|
||||
|
||||
signals:
|
||||
void settingsChanged();
|
||||
|
||||
private:
|
||||
KGlobalAccel *globalAccel;
|
||||
bool dialogOpen;
|
||||
|
||||
bool useComposite;
|
||||
bool passiveScreenshots;
|
||||
uint screenshotGrabDelay;
|
||||
|
||||
bool dynamicVirtDeskLayout;
|
||||
|
||||
bool imageEffects;
|
||||
int defaultView;
|
||||
|
||||
int iconSize;
|
||||
bool showIcons;
|
||||
|
||||
bool showWindowTitles;
|
||||
QFont windowTitleFont;
|
||||
QFontMetrics *windowTitleFontMetrics;
|
||||
int windowTitleFontAscent;
|
||||
int windowTitleFontHeight;
|
||||
QColor windowTitleFontColor;
|
||||
bool showWindowTitleShadow;
|
||||
QColor windowTitleFontShadowColor;
|
||||
|
||||
QFont desktopTitleFont;
|
||||
QColor desktopTitleFontColor;
|
||||
QColor desktopTitleFontHighlightColor;
|
||||
|
||||
bool cacheScaledPixmaps;
|
||||
|
||||
bool activateOnTopLeftCorner;
|
||||
bool activateOnTopRightCorner;
|
||||
bool activateOnBottomLeftCorner;
|
||||
bool activateOnBottomRightCorner;
|
||||
|
||||
bool activateOnTopEdge;
|
||||
bool activateOnLeftEdge;
|
||||
bool activateOnBottomEdge;
|
||||
bool activateOnRightEdge;
|
||||
|
||||
uint autoLockDelay;
|
||||
|
||||
bool showDesktopNum;
|
||||
int viewScreen;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,127 @@
|
||||
//
|
||||
// C++ Implementation: komposesystray
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposesystray.h"
|
||||
|
||||
#include "komposeviewmanager.h"
|
||||
#include "komposefullscreenwidget.h"
|
||||
#include "komposesettings.h"
|
||||
#include "komposeglobal.h"
|
||||
#include "komposetaskmanager.h"
|
||||
|
||||
#include <qpixmap.h>
|
||||
#include <qbitmap.h>
|
||||
#include <qpainter.h>
|
||||
|
||||
#include <kapplication.h>
|
||||
#include <kaction.h>
|
||||
#include <kpopupmenu.h>
|
||||
#include <kiconeffect.h>
|
||||
#include <kglobalsettings.h>
|
||||
|
||||
KomposeSysTray::KomposeSysTray(QWidget *parent, const char *name)
|
||||
: KSystemTray(parent, name)
|
||||
{
|
||||
// Create Menu
|
||||
menu = contextMenu();
|
||||
move( -1000, -1000 );
|
||||
// Fill Menu
|
||||
KomposeGlobal::instance()->getActShowWorldView()->plug(menu);
|
||||
KomposeGlobal::instance()->getActShowVirtualDesktopView()->plug(menu);
|
||||
KomposeGlobal::instance()->getActShowCurrentDesktopView()->plug(menu);
|
||||
menu->insertSeparator();
|
||||
KomposeGlobal::instance()->getActPreferencesDialog()->plug(menu);
|
||||
KomposeGlobal::instance()->getActConfigGlobalShortcuts()->plug(menu);
|
||||
KomposeGlobal::instance()->getActAboutDlg()->plug(menu);
|
||||
|
||||
slotConfigChanged();
|
||||
connect( KomposeSettings::instance(), SIGNAL(settingsChanged()), this, SLOT(slotConfigChanged()) );
|
||||
}
|
||||
|
||||
|
||||
KomposeSysTray::~KomposeSysTray()
|
||||
{}
|
||||
|
||||
void KomposeSysTray::slotConfigChanged( )
|
||||
{
|
||||
// set the icon here
|
||||
QPixmap iconPixmap = loadIcon("kompose");
|
||||
setPixmap(iconPixmap);
|
||||
icon = iconPixmap.convertToImage();
|
||||
currentDesktopChanged(KomposeTaskManager::instance()->getCurrentDesktopNum());
|
||||
}
|
||||
|
||||
void KomposeSysTray::mouseReleaseEvent (QMouseEvent * )
|
||||
{}
|
||||
|
||||
void KomposeSysTray::mousePressEvent ( QMouseEvent * e )
|
||||
{
|
||||
if ( !rect().contains( e->pos() ) )
|
||||
return;
|
||||
|
||||
switch ( e->button() )
|
||||
{
|
||||
case LeftButton:
|
||||
KomposeViewManager::instance()->createView( KomposeSettings::instance()->getDefaultView() );
|
||||
break;
|
||||
case MidButton:
|
||||
// fall through
|
||||
case RightButton:
|
||||
contextMenuAboutToShow( menu );
|
||||
menu->popup( e->globalPos() );
|
||||
break;
|
||||
default:
|
||||
// nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void KomposeSysTray::currentDesktopChanged(int desktop)
|
||||
{
|
||||
if (!KomposeSettings::instance()->getShowDesktopNum())
|
||||
return;
|
||||
// update the icon to display the current desktop number
|
||||
// qDebug("Displaying current desktop number on the tray icon....\n");
|
||||
|
||||
// copying from aKregator/src/trayicon.cpp
|
||||
// from KMSystemTray
|
||||
int oldW = pixmap()->size().width();
|
||||
int oldH = pixmap()->size().height();
|
||||
|
||||
QString uStr=QString::number( desktop );
|
||||
QFont f=KGlobalSettings::generalFont();
|
||||
f.setBold(true);
|
||||
f.setItalic(true);
|
||||
float pointSize=f.pointSizeFloat();
|
||||
QFontMetrics fm(f);
|
||||
int w=fm.width(uStr);
|
||||
if( w > (oldW) )
|
||||
{
|
||||
pointSize *= float(oldW) / float(w);
|
||||
f.setPointSizeFloat(pointSize);
|
||||
}
|
||||
QPixmap pix(oldW, oldH);
|
||||
pix.fill(Qt::white);
|
||||
QPainter p(&pix);
|
||||
p.setFont(f);
|
||||
p.setPen(Qt::black);
|
||||
p.drawText(pix.rect(), Qt::AlignCenter, uStr);
|
||||
pix.setMask(pix.createHeuristicMask());
|
||||
QImage img=pix.convertToImage();
|
||||
// overlay
|
||||
QImage overlayImg=icon.copy();
|
||||
KIconEffect::overlay(overlayImg, img);
|
||||
QPixmap newIcon;
|
||||
newIcon.convertFromImage(overlayImg);
|
||||
setPixmap(newIcon);
|
||||
}
|
||||
|
||||
#include "komposesystray.moc"
|
@ -0,0 +1,47 @@
|
||||
//
|
||||
// C++ Interface: komposesystray
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#ifndef KOMPOSESYSTRAY_H
|
||||
#define KOMPOSESYSTRAY_H
|
||||
|
||||
#include <ksystemtray.h>
|
||||
|
||||
#include <qimage.h>
|
||||
|
||||
class KAction;
|
||||
class KGlobalAccel;
|
||||
class KPopupMenu;
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeSysTray : public KSystemTray
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KomposeSysTray(QWidget *parent = 0, const char *name = 0);
|
||||
~KomposeSysTray();
|
||||
|
||||
void currentDesktopChanged(int desktop);
|
||||
|
||||
protected:
|
||||
void mouseReleaseEvent (QMouseEvent *);
|
||||
void mousePressEvent (QMouseEvent *);
|
||||
|
||||
protected slots:
|
||||
void slotConfigChanged();
|
||||
|
||||
private:
|
||||
KPopupMenu *menu;
|
||||
QImage icon;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,357 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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 "komposetask.h"
|
||||
|
||||
#include "komposetaskmanager.h"
|
||||
#include "komposesettings.h"
|
||||
#include "komposeglobal.h"
|
||||
|
||||
#include <qobject.h>
|
||||
#include <qimage.h>
|
||||
#include <qapplication.h>
|
||||
#include <qtimer.h>
|
||||
#include <qpixmap.h>
|
||||
#include <kpixmapio.h>
|
||||
|
||||
#include <kwinmodule.h>
|
||||
#include <klocale.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
#include <netwm.h>
|
||||
#include <time.h>
|
||||
|
||||
// Last include as it's Xlibs includes conflict with qt includes
|
||||
#include "komposetaskvisualizer.h"
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
KomposeTask::KomposeTask(WId win, KWinModule *kwinmod, QObject *parent, const char *name)
|
||||
: QObject(parent, name),
|
||||
kwinmodule(kwinmod),
|
||||
windowID(win),
|
||||
blockDamageEvents(false)
|
||||
{
|
||||
findWmFrame();
|
||||
|
||||
// Initial refresh
|
||||
refresh();
|
||||
|
||||
// Create visualizer object
|
||||
visualizer = new KomposeTaskVisualizer( this );
|
||||
}
|
||||
|
||||
|
||||
KomposeTask::~KomposeTask()
|
||||
{
|
||||
emit closed();
|
||||
visualizer->deleteLater();
|
||||
}
|
||||
|
||||
void KomposeTask::findWmFrame()
|
||||
{
|
||||
Window target_win, parent, root;
|
||||
Window *children;
|
||||
uint status, nchildren;
|
||||
|
||||
target_win = windowID;
|
||||
for (;;)
|
||||
{
|
||||
status = XQueryTree(QPaintDevice::x11AppDisplay(), target_win, &root, &parent, &children, &nchildren);
|
||||
if (!status)
|
||||
break;
|
||||
if (children)
|
||||
XFree(children);
|
||||
|
||||
if (!parent || parent == root)
|
||||
break;
|
||||
else
|
||||
target_win = parent;
|
||||
}
|
||||
|
||||
wmframeID = target_win;
|
||||
}
|
||||
|
||||
void KomposeTask::slotActivated()
|
||||
{
|
||||
visualizer->slotTaskActivated();
|
||||
}
|
||||
|
||||
void KomposeTask::slotUpdateScreenshot()
|
||||
{
|
||||
visualizer->slotUpdateScreenshot();
|
||||
}
|
||||
|
||||
bool KomposeTask::isOnTop() const
|
||||
{
|
||||
return KomposeTaskManager::instance()->isOnTop( this );
|
||||
}
|
||||
|
||||
|
||||
bool KomposeTask::isActive() const
|
||||
{
|
||||
if ( kwinmodule->activeWindow() == windowID )
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
bool KomposeTask::isMaximized() const
|
||||
{
|
||||
return (windowInfo.state() & NET::Max);
|
||||
}
|
||||
|
||||
bool KomposeTask::isIconified() const
|
||||
{
|
||||
// return (windowInfo.mappingState == NET::Iconic);
|
||||
return windowInfo.isMinimized();
|
||||
}
|
||||
|
||||
bool KomposeTask::isAlwaysOnTop() const
|
||||
{
|
||||
return (windowInfo.state() & NET::StaysOnTop);
|
||||
}
|
||||
|
||||
bool KomposeTask::isShaded() const
|
||||
{
|
||||
return (windowInfo.state() & NET::Shaded);
|
||||
}
|
||||
|
||||
bool KomposeTask::isOnCurrentDesktop() const
|
||||
{
|
||||
return (windowInfo.onAllDesktops() || windowInfo.desktop() == KWin::currentDesktop());
|
||||
}
|
||||
|
||||
int KomposeTask::onDesktop() const
|
||||
{
|
||||
return windowInfo.desktop();
|
||||
}
|
||||
|
||||
bool KomposeTask::isOnAllDesktops() const
|
||||
{
|
||||
return windowInfo.onAllDesktops();
|
||||
}
|
||||
|
||||
|
||||
bool KomposeTask::isModified() const
|
||||
{
|
||||
static QString modStr = QString::fromUtf8("[") + i18n("modified") + QString::fromUtf8("]");
|
||||
int modStrPos = windowInfo.visibleName().find(modStr);
|
||||
|
||||
return ( modStrPos != -1 );
|
||||
}
|
||||
|
||||
|
||||
void KomposeTask::maximize()
|
||||
{
|
||||
NETWinInfo ni( qt_xdisplay(), windowID, qt_xrootwin(), NET::WMState);
|
||||
ni.setState( NET::Max, NET::Max );
|
||||
|
||||
if (windowInfo.mappingState() == NET::Iconic)
|
||||
activate();
|
||||
}
|
||||
|
||||
void KomposeTask::restore()
|
||||
{
|
||||
KWin::deIconifyWindow( windowID, false );
|
||||
// NETWinInfo ni( qt_xdisplay(), windowID, qt_xrootwin(), NET::WMState);
|
||||
// ni.setState( 0, NET::Max );
|
||||
//
|
||||
// if (windowInfo.mappingState == NET::Iconic)
|
||||
// activate();
|
||||
}
|
||||
|
||||
void KomposeTask::iconify()
|
||||
{
|
||||
//XIconifyWindow( qt_xdisplay(), windowID, qt_xscreen() );
|
||||
KWin::iconifyWindow( windowID, false );
|
||||
}
|
||||
|
||||
void KomposeTask::close()
|
||||
{
|
||||
NETRootInfo ri( qt_xdisplay(), NET::CloseWindow );
|
||||
ri.closeWindowRequest( windowID );
|
||||
}
|
||||
|
||||
void KomposeTask::raise()
|
||||
{
|
||||
// kdDebug(1210) << "Task::raise(): " << name() << endl;
|
||||
XRaiseWindow( qt_xdisplay(), windowID );
|
||||
}
|
||||
|
||||
void KomposeTask::lower()
|
||||
{
|
||||
// kdDebug(1210) << "Task::lower(): " << name() << endl;
|
||||
XLowerWindow( qt_xdisplay(), windowID );
|
||||
}
|
||||
|
||||
|
||||
void KomposeTask::activate()
|
||||
{
|
||||
KWin::forceActiveWindow(windowID);
|
||||
}
|
||||
|
||||
// void KomposeTask::activateOrRaise()
|
||||
// {
|
||||
// if ( !isActive() || isIconified() )
|
||||
// {
|
||||
// activate();
|
||||
// }
|
||||
// else if ( !isOnTop() )
|
||||
// {
|
||||
// raise();
|
||||
// }
|
||||
// }
|
||||
|
||||
void KomposeTask::minimizeOrRestore()
|
||||
{
|
||||
if ( isIconified() )
|
||||
{
|
||||
restore();
|
||||
}
|
||||
else
|
||||
{
|
||||
iconify();
|
||||
}
|
||||
}
|
||||
|
||||
void KomposeTask::toDesktop(int desk)
|
||||
{
|
||||
NETWinInfo ni(qt_xdisplay(), windowID, qt_xrootwin(), NET::WMDesktop);
|
||||
if (desk == 0)
|
||||
{
|
||||
ni.setDesktop(NETWinInfo::OnAllDesktops);
|
||||
return;
|
||||
}
|
||||
//ni.setDesktop(desk+1);
|
||||
KWin::setOnDesktop( windowID, desk );
|
||||
}
|
||||
|
||||
void KomposeTask::toCurrentDesktop()
|
||||
{
|
||||
toDesktop(kwinmodule->currentDesktop());
|
||||
}
|
||||
|
||||
void KomposeTask::setAlwaysOnTop(bool stay)
|
||||
{
|
||||
NETWinInfo ni( qt_xdisplay(), windowID, qt_xrootwin(), NET::WMState);
|
||||
if(stay)
|
||||
ni.setState( NET::StaysOnTop, NET::StaysOnTop );
|
||||
else
|
||||
ni.setState( 0, NET::StaysOnTop );
|
||||
}
|
||||
|
||||
void KomposeTask::toggleAlwaysOnTop()
|
||||
{
|
||||
setAlwaysOnTop( !isAlwaysOnTop() );
|
||||
}
|
||||
|
||||
void KomposeTask::setShaded(bool shade)
|
||||
{
|
||||
NETWinInfo ni( qt_xdisplay(), windowID, qt_xrootwin(), NET::WMState);
|
||||
if(shade)
|
||||
ni.setState( NET::Shaded, NET::Shaded );
|
||||
else
|
||||
ni.setState( 0, NET::Shaded );
|
||||
}
|
||||
|
||||
void KomposeTask::toggleShaded()
|
||||
{
|
||||
setShaded( !isShaded() );
|
||||
}
|
||||
|
||||
/*
|
||||
* Update Info data
|
||||
*/
|
||||
void KomposeTask::refresh()
|
||||
{
|
||||
//kdDebug() << "KomposeTask::refresh() (WId %d) - Window parameters have changed or initial refresh", windowID);
|
||||
|
||||
windowInfo = KWin::windowInfo(windowID);
|
||||
|
||||
if ( !windowInfo.valid() )
|
||||
{
|
||||
kdDebug() << "KomposeTask::refresh() (WId " << windowID << ") - Invalid window Info. window closed?!" << endl;
|
||||
// TODO: Find out what I have todo when this happens ( it does! )
|
||||
return;
|
||||
}
|
||||
|
||||
emit stateChanged(); //TODO: Only emit this when state has really changed
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This has to be called by x11EventFilter whenever ConfigureNotify for this win occurs
|
||||
* sorta hacky but x11EventFilter can only be implemented in a kapp object which redirects it
|
||||
* to the taskmanager, that picks out the right task by winId and notifies us :(
|
||||
*/
|
||||
void KomposeTask::slotX11ConfigureNotify()
|
||||
{
|
||||
emit x11ConfigureNotify();
|
||||
}
|
||||
|
||||
/**
|
||||
* This has to be called by x11EventFilter whenever DamageNotify for this win occurs
|
||||
* sorta hacky but x11EventFilter can only be implemented in a kapp object which redirects it
|
||||
* to the taskmanager, that picks out the right task by winId and notifies us :(
|
||||
*/
|
||||
void KomposeTask::slotX11DamageNotify()
|
||||
{
|
||||
if ( blockDamageEvents )
|
||||
return;
|
||||
|
||||
blockDamageEvents = true;
|
||||
emit x11DamageNotify();
|
||||
QTimer::singleShot( 1000, this, SLOT( unBlockDamageEvents() ) );
|
||||
}
|
||||
|
||||
int KomposeTask::getHeightForWidth ( int w ) const
|
||||
{
|
||||
return (int)(((double)w / (double)getGeometry().width()) * (double)getGeometry().height());
|
||||
}
|
||||
|
||||
int KomposeTask::getWidthForHeight ( int h ) const
|
||||
{
|
||||
return (int)(((double)h / (double)getGeometry().height()) * (double)getGeometry().width());
|
||||
}
|
||||
|
||||
double KomposeTask::getAspectRatio()
|
||||
{
|
||||
return (double)(getGeometry().width()) / (double)(getGeometry().height());
|
||||
}
|
||||
|
||||
QPixmap KomposeTask::getIcon( int size )
|
||||
{
|
||||
// Cache the icons???
|
||||
// if ( pm_icon.isNull() || pm_icon.width() != size )
|
||||
// {
|
||||
// if (size == -1)
|
||||
// pm_icon = KWin::icon( windowID );
|
||||
// else
|
||||
// pm_icon = KWin::icon( windowID, size, size, true );
|
||||
// }
|
||||
//
|
||||
// return pm_icon;
|
||||
if (size == -1)
|
||||
return KWin::icon( windowID );
|
||||
else
|
||||
return KWin::icon( windowID, size, size, true );
|
||||
}
|
||||
|
||||
|
||||
#include "komposetask.moc"
|
@ -0,0 +1,118 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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. *
|
||||
***************************************************************************/
|
||||
#ifndef KOMPOSETASK_H
|
||||
#define KOMPOSETASK_H
|
||||
|
||||
#include <qobject.h>
|
||||
#include <qrect.h>
|
||||
#include <kwin.h>
|
||||
|
||||
class KWinModule;
|
||||
class KomposeTaskVisualizer;
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeTask : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KomposeTask(WId win, KWinModule *kwinmod, QObject *parent = 0, const char *name = 0);
|
||||
|
||||
~KomposeTask();
|
||||
|
||||
public:
|
||||
// state
|
||||
bool isMaximized() const;
|
||||
bool isIconified() const;
|
||||
bool isShaded() const;
|
||||
bool isOnTop() const;
|
||||
int onDesktop() const;
|
||||
bool isOnCurrentDesktop() const;
|
||||
bool isOnAllDesktops() const;
|
||||
bool isAlwaysOnTop() const;
|
||||
bool isActive() const;
|
||||
bool isModified() const;
|
||||
bool isValid() const { return windowInfo.valid(); }
|
||||
|
||||
WId window() const { return windowID; }
|
||||
WId wmFrame() const { return wmframeID; }
|
||||
QString name() const { return windowInfo.name(); }
|
||||
QString visibleName() const { return windowInfo.visibleName(); }
|
||||
QString visibleNameWithState() const { return windowInfo.visibleNameWithState(); }
|
||||
QRect getGeometry() const { return windowInfo.geometry(); }
|
||||
QRect getFrameGeometry() const { return windowInfo.frameGeometry(); }
|
||||
|
||||
QPixmap getIcon( int size );
|
||||
double getAspectRatio();
|
||||
int getHeightForWidth( int w ) const;
|
||||
int getWidthForHeight( int h ) const;
|
||||
|
||||
KomposeTaskVisualizer* getVisualizer() { return visualizer; }
|
||||
|
||||
protected:
|
||||
void paintEvent ( QPaintEvent * );
|
||||
void mouseReleaseEvent ( QMouseEvent * e );
|
||||
void findWmFrame();
|
||||
|
||||
signals:
|
||||
void stateChanged();
|
||||
void x11ConfigureNotify();
|
||||
void x11DamageNotify();
|
||||
void closed();
|
||||
|
||||
public slots:
|
||||
void maximize();
|
||||
void restore();
|
||||
void iconify();
|
||||
void close();
|
||||
void raise();
|
||||
void lower();
|
||||
void activate();
|
||||
// void activateOrRaise();
|
||||
void minimizeOrRestore();
|
||||
|
||||
void toDesktop(int desk);
|
||||
void toCurrentDesktop();
|
||||
void setAlwaysOnTop(bool stay);
|
||||
void toggleAlwaysOnTop();
|
||||
void setShaded(bool shade);
|
||||
void toggleShaded();
|
||||
|
||||
void refresh();
|
||||
void slotX11ConfigureNotify();
|
||||
void slotX11DamageNotify();
|
||||
void slotActivated();
|
||||
void slotUpdateScreenshot();
|
||||
|
||||
protected slots:
|
||||
void unBlockDamageEvents() { blockDamageEvents = false; }
|
||||
|
||||
private:
|
||||
KWinModule* kwinmodule;
|
||||
WId windowID;
|
||||
WId wmframeID;
|
||||
KWin::WindowInfo windowInfo;
|
||||
|
||||
bool blockDamageEvents;
|
||||
KomposeTaskVisualizer* visualizer;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,254 @@
|
||||
//
|
||||
// C++ Implementation: komposetaskcontainerwidget
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposetaskcontainerwidget.h"
|
||||
#include "komposetaskmanager.h"
|
||||
#include "komposeviewmanager.h"
|
||||
#include "komposelayout.h"
|
||||
#include "komposesettings.h"
|
||||
#include "komposetaskwidget.h"
|
||||
|
||||
#include <qobjectlist.h>
|
||||
#include <qwidget.h>
|
||||
#include <qtimer.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
static bool controlHold = false; // is the control key pressed
|
||||
|
||||
KomposeTaskContainerWidget::KomposeTaskContainerWidget( int desk, QWidget *parent, KomposeLayout *l, const char *name)
|
||||
: KomposeWidget(parent, l, name),
|
||||
desktop( desk )
|
||||
{
|
||||
connect(KomposeTaskManager::instance(), SIGNAL(taskDesktopChanged(KomposeTask*, int, int )),
|
||||
SLOT(reparentTaskWidget(KomposeTask*, int, int )) );
|
||||
}
|
||||
|
||||
|
||||
KomposeTaskContainerWidget::~KomposeTaskContainerWidget()
|
||||
{}
|
||||
|
||||
void KomposeTaskContainerWidget::reparentTaskWidget( KomposeTask* task, int fromDesktop, int toDesktop )
|
||||
{
|
||||
// noops
|
||||
if ( (fromDesktop==-1 && ((toDesktop==-1) || desktop == toDesktop-1)) || desktop==-2)
|
||||
return;
|
||||
|
||||
kdDebug() << "KomposeTaskContainerWidget::reparentTaskWidget()" << endl;
|
||||
|
||||
// Delete from current
|
||||
if ( (toDesktop!= -1) && (desktop == fromDesktop-1 || fromDesktop==-1) )
|
||||
{
|
||||
KomposeTaskWidget *child;
|
||||
QPtrListIterator<KomposeWidget> it( *(layout->getManagedWidgets()));
|
||||
while ( (child = dynamic_cast<KomposeTaskWidget*>(it.current()) ) != 0 )
|
||||
{
|
||||
++it;
|
||||
if (child->getTask() == task)
|
||||
{
|
||||
removeChild( task );
|
||||
layout->remove(child);
|
||||
//child->deleteLater();
|
||||
child->close(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add to new
|
||||
if ( desktop == toDesktop -1 || (toDesktop == -1 && fromDesktop-1!=desktop) )
|
||||
{
|
||||
createTaskWidget( task, true );
|
||||
//QTimer::singleShot( 200, layout, SLOT( arrangeLayout() ) );
|
||||
// layout->arrangeLayout();
|
||||
}
|
||||
}
|
||||
|
||||
void KomposeTaskContainerWidget::keyPressEvent ( QKeyEvent * e )
|
||||
{
|
||||
if ( e->key() == Qt::Key_Control )
|
||||
{
|
||||
controlHold = true;
|
||||
e->accept();
|
||||
}
|
||||
}
|
||||
|
||||
void KomposeTaskContainerWidget::keyReleaseEvent ( QKeyEvent * e )
|
||||
{
|
||||
if ( e->key() == Qt::Key_Control )
|
||||
{
|
||||
controlHold = false;
|
||||
e->accept();
|
||||
return;
|
||||
}
|
||||
|
||||
if ( e->key() == Qt::Key_Right || e->key() == Qt::Key_D || e->key() == Qt::Key_H ||
|
||||
e->key() == Qt::Key_Left || e->key() == Qt::Key_A || e->key() == Qt::Key_J ||
|
||||
e->key() == Qt::Key_Up || e->key() == Qt::Key_W || e->key() == Qt::Key_K ||
|
||||
e->key() == Qt::Key_Down || e->key() == Qt::Key_S || e->key() == Qt::Key_L )
|
||||
{
|
||||
if ( controlHold && desktop != -1 )
|
||||
{
|
||||
e->ignore();
|
||||
return;
|
||||
}
|
||||
|
||||
kdDebug() << "KomposeTaskContainerWidget::keyReleaseEvent - " << className() << ", Movement key pressed" << endl;
|
||||
// Map keys to directions
|
||||
int direction = DLAYOUT_RIGHT;
|
||||
switch( e->key() )
|
||||
{
|
||||
case Qt::Key_Right:
|
||||
direction = DLAYOUT_RIGHT;
|
||||
break;
|
||||
case Qt::Key_D:
|
||||
direction = DLAYOUT_RIGHT;
|
||||
break;
|
||||
case Qt::Key_L:
|
||||
direction = DLAYOUT_RIGHT;
|
||||
break;
|
||||
case Qt::Key_Left:
|
||||
direction = DLAYOUT_LEFT;
|
||||
break;
|
||||
case Qt::Key_A:
|
||||
direction = DLAYOUT_LEFT;
|
||||
break;
|
||||
case Qt::Key_H:
|
||||
direction = DLAYOUT_LEFT;
|
||||
break;
|
||||
case Qt::Key_Up:
|
||||
direction = DLAYOUT_TOP;
|
||||
break;
|
||||
case Qt::Key_W:
|
||||
direction = DLAYOUT_TOP;
|
||||
break;
|
||||
case Qt::Key_K:
|
||||
direction = DLAYOUT_TOP;
|
||||
break;
|
||||
case Qt::Key_Down:
|
||||
direction = DLAYOUT_BOTTOM;
|
||||
break;
|
||||
case Qt::Key_S:
|
||||
direction = DLAYOUT_BOTTOM;
|
||||
break;
|
||||
case Qt::Key_J:
|
||||
direction = DLAYOUT_BOTTOM;
|
||||
break;
|
||||
}
|
||||
|
||||
focusNeighbourChild( direction );
|
||||
e->accept();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
e->ignore();
|
||||
}
|
||||
|
||||
|
||||
bool KomposeTaskContainerWidget::focusNeighbourChild( int direction )
|
||||
{
|
||||
bool successfull = false;
|
||||
if ( !children()->containsRef(focusWidget()) )
|
||||
{
|
||||
kdDebug() << "KomposeTaskContainerWidget::keyReleaseEvent - No widget focussed. Focussing first" << endl;
|
||||
const QObjectList *lst = children();
|
||||
|
||||
if ( lst )
|
||||
{
|
||||
QObjectListIterator it( *lst );
|
||||
QWidget *widget;
|
||||
while ( (widget = (QWidget*)it.current() ) )
|
||||
{
|
||||
if (widget->inherits("KomposeTaskWidget") || widget->inherits("KomposeDesktopWidget"))
|
||||
{
|
||||
kdDebug() << "KomposeTaskContainerWidget::keyReleaseEvent - Focussing " << widget->className() << endl;
|
||||
widget->setFocus();
|
||||
successfull = true;
|
||||
break;
|
||||
}
|
||||
++it;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
KomposeWidget *widget;
|
||||
if ( ( widget = layout->getNeighbour( dynamic_cast<KomposeWidget*>(focusWidget()), direction, WLAYOUT_BOTH ) ) != 0 )
|
||||
{
|
||||
kdDebug() << "KomposeTaskContainerWidget::keyReleaseEvent - Focussing " << widget->className() << endl;
|
||||
widget->setFocus();
|
||||
successfull = true;
|
||||
}
|
||||
}
|
||||
|
||||
return successfull;
|
||||
}
|
||||
|
||||
|
||||
void KomposeTaskContainerWidget::createTaskWidgets()
|
||||
{
|
||||
TaskList tl = KomposeTaskManager::instance()->getTasks();
|
||||
QPtrListIterator<KomposeTask> it( tl );
|
||||
KomposeTask *task;
|
||||
while ( (task = it.current()) != 0 )
|
||||
{
|
||||
++it;
|
||||
Q_CHECK_PTR(task);
|
||||
createTaskWidget( task);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void KomposeTaskContainerWidget::createTaskWidget( KomposeTask* task, bool manualShow )
|
||||
{
|
||||
if ( desktop == -1 || desktop == task->onDesktop()-1 || task->onDesktop()==-1)
|
||||
{
|
||||
kdDebug() << "KomposeTaskContainerWidget::createTaskWidget() (Container: " << this->className() << ", WId: " << task->window() << ", onDesktop: " << task->onDesktop() << ")" << endl;
|
||||
KomposeTaskWidget *taskwidget = new KomposeTaskWidget( task, this );
|
||||
if (manualShow)
|
||||
taskwidget->show();
|
||||
connect( taskwidget, SIGNAL(requestRemoval(KomposeWidget*)), SLOT(requestRemoval(KomposeWidget*)) );
|
||||
}
|
||||
}
|
||||
|
||||
int KomposeTaskContainerWidget::getHeightForWidth( int ) const
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
int KomposeTaskContainerWidget::getWidthForHeight( int ) const
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
double KomposeTaskContainerWidget::getAspectRatio()
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
void KomposeTaskContainerWidget::requestRemoval( KomposeWidget *obj )
|
||||
{
|
||||
layout->remove(obj);
|
||||
// removeChild( obj ); // FIXME: This causes segfaults although it would
|
||||
// be the correct way (ChildRemoveEvents to rearrange the layout...)
|
||||
!obj->close(true);
|
||||
layout->arrangeLayout();
|
||||
}
|
||||
|
||||
void KomposeTaskContainerWidget::childEvent( QChildEvent * ce)
|
||||
{
|
||||
KomposeWidget::childEvent(ce);
|
||||
// ReLayout when we are in a active view and a new window appeared somewhere
|
||||
if ( KomposeViewManager::instance()->hasActiveView() )
|
||||
layout->arrangeLayout();
|
||||
}
|
||||
|
||||
#include "komposetaskcontainerwidget.moc"
|
@ -0,0 +1,58 @@
|
||||
//
|
||||
// C++ Interface: komposetaskcontainerwidget
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#ifndef KOMPOSETASKCONTAINERWIDGET_H
|
||||
#define KOMPOSETASKCONTAINERWIDGET_H
|
||||
|
||||
#include "komposewidget.h"
|
||||
#include "komposetask.h"
|
||||
#include "komposelayout.h"
|
||||
|
||||
/**
|
||||
* This abstract class contains some functions only usable for
|
||||
* Widgets that display task widgets
|
||||
* (so I won't have to double the code for the createTaskWidgets() funxtion :) )
|
||||
*
|
||||
* @author Hans Oischinger
|
||||
*/
|
||||
class KomposeTaskContainerWidget : public KomposeWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KomposeTaskContainerWidget( int desk = 0, QWidget *parent = 0, KomposeLayout *l = 0, const char *name = 0);
|
||||
|
||||
virtual ~KomposeTaskContainerWidget();
|
||||
|
||||
virtual int getHeightForWidth( int w ) const;
|
||||
virtual int getWidthForHeight( int h ) const;
|
||||
virtual double getAspectRatio();
|
||||
|
||||
void setDesktop( int desk ) { desktop = desk; }
|
||||
int getDesktop() { return desktop; }
|
||||
|
||||
public slots:
|
||||
void requestRemoval( KomposeWidget *obj );
|
||||
|
||||
protected slots:
|
||||
void createTaskWidgets();
|
||||
void createTaskWidget( KomposeTask* task, bool manualShow=true );
|
||||
void reparentTaskWidget( KomposeTask* task, int fromDesktop, int toDesktop );
|
||||
bool focusNeighbourChild( int direction );
|
||||
|
||||
protected:
|
||||
void keyReleaseEvent ( QKeyEvent * e );
|
||||
void keyPressEvent ( QKeyEvent * e );
|
||||
void childEvent( QChildEvent * ce);
|
||||
|
||||
int desktop;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,387 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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 "komposetaskmanager.h"
|
||||
|
||||
#include "komposelayout.h"
|
||||
#include "komposedesktopwidget.h"
|
||||
#include "komposesettings.h"
|
||||
#include "komposetaskwidget.h"
|
||||
#include "komposeglobal.h"
|
||||
#include "komposetask.h"
|
||||
#include "komposeviewmanager.h"
|
||||
|
||||
#include <qtimer.h>
|
||||
#include <qimage.h>
|
||||
#include <qpixmap.h>
|
||||
#include <qwidget.h>
|
||||
|
||||
#include <kapplication.h>
|
||||
#include <kwinmodule.h>
|
||||
#include <netwm.h>
|
||||
#include <kwin.h>
|
||||
#include <kapplication.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
#ifdef COMPOSITE
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/Xatom.h>
|
||||
#include <X11/extensions/Xcomposite.h>
|
||||
#include <X11/extensions/Xdamage.h>
|
||||
#include <X11/extensions/Xrender.h>
|
||||
#endif
|
||||
|
||||
static KomposeTaskManager* taskManagerInstance = 0;
|
||||
|
||||
|
||||
/**
|
||||
* Taskmanager is a singleton
|
||||
*/
|
||||
KomposeTaskManager* KomposeTaskManager::instance()
|
||||
{
|
||||
if ( !taskManagerInstance )
|
||||
{
|
||||
kdDebug() << "KomposeTaskManager::instance() - Creating Singleton instance" << endl;
|
||||
taskManagerInstance = new KomposeTaskManager();
|
||||
}
|
||||
return taskManagerInstance;
|
||||
}
|
||||
|
||||
|
||||
KomposeTaskManager::KomposeTaskManager()
|
||||
: QObject()
|
||||
{
|
||||
taskManagerInstance = this;
|
||||
kwin_module = new KWinModule();
|
||||
numDesks = KWin::numberOfDesktops();
|
||||
|
||||
callCompositeRedirect();
|
||||
|
||||
// Listeners for KWinmodule signals
|
||||
connect( kwin_module, SIGNAL(windowAdded(WId)), this, SLOT(slotWindowAdded(WId)) );
|
||||
connect( kwin_module, SIGNAL(windowRemoved(WId)), this, SLOT(slotWindowRemoved(WId)) );
|
||||
connect( kwin_module, SIGNAL(numberOfDesktopsChanged(int)), this, SLOT(slotDesktopCountChanged(int)) );
|
||||
connect( kwin_module, SIGNAL(currentDesktopChanged(int)), this, SLOT(slotCurrentDesktopChanged(int)) );
|
||||
|
||||
connect( KomposeSettings::instance(), SIGNAL(settingsChanged()), this, SLOT(slotStartWindowListeners()) );
|
||||
connect( KomposeSettings::instance(), SIGNAL(settingsChanged()), this, SLOT(callCompositeRedirect()) );
|
||||
|
||||
// register existing windows
|
||||
const QValueList<WId> windows = kwin_module->windows();
|
||||
for (QValueList<WId>::ConstIterator it = windows.begin(); it != windows.end(); ++it )
|
||||
slotWindowAdded(*it);
|
||||
|
||||
connect( kwin_module, SIGNAL(activeWindowChanged(WId)), this, SLOT(slotTaskActivated(WId)) );
|
||||
slotStartWindowListeners();
|
||||
}
|
||||
|
||||
KomposeTaskManager::~KomposeTaskManager()
|
||||
{
|
||||
delete kwin_module;
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirect or unredirect all root windows to offscreen buffers
|
||||
*/
|
||||
void KomposeTaskManager::callCompositeRedirect()
|
||||
{
|
||||
#ifdef COMPOSITE
|
||||
if ( KomposeGlobal::instance()->hasXcomposite() )
|
||||
{
|
||||
Display *dpy = QPaintDevice::x11AppDisplay();
|
||||
if ( KomposeSettings::instance()->getUseComposite() )
|
||||
{
|
||||
// Redirect
|
||||
for ( int i = 0; i < ScreenCount( dpy ); i++ )
|
||||
XCompositeRedirectSubwindows( dpy, RootWindow( dpy, i ), CompositeRedirectAutomatic );
|
||||
}
|
||||
else if ( !KomposeSettings::instance()->getUseComposite() )
|
||||
{
|
||||
// Unredirect
|
||||
for ( int i = 0; i < ScreenCount( dpy ); i++ )
|
||||
XCompositeUnredirectSubwindows( dpy, RootWindow( dpy, i ), CompositeRedirectAutomatic );
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function that finds a KomposeTask object by it's window id
|
||||
* @param w WindowID of the Task
|
||||
* @return Corresponding KomposeTask object
|
||||
*/
|
||||
KomposeTask* KomposeTaskManager::findTask(WId w, bool wmFrameIds )
|
||||
{
|
||||
for (KomposeTask* t = tasklist.first(); t != 0; t = tasklist.next())
|
||||
if ((!wmFrameIds && t->window() == w) || (wmFrameIds && t->wmFrame() == w) )
|
||||
return t;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void KomposeTaskManager::slotStartWindowListeners()
|
||||
{
|
||||
disconnect( kwin_module, SIGNAL(windowChanged( WId, unsigned int )), this,
|
||||
SLOT(slotWindowChanged( WId, unsigned int )) );
|
||||
connect( kwin_module, SIGNAL(windowChanged( WId, unsigned int )), this,
|
||||
SLOT(slotWindowChanged( WId, unsigned int )) );
|
||||
}
|
||||
|
||||
|
||||
void KomposeTaskManager::slotWindowChanged( WId w, unsigned int dirty)
|
||||
{
|
||||
if( dirty & NET::WMState )
|
||||
{
|
||||
NETWinInfo info ( qt_xdisplay(), w, qt_xrootwin(), NET::WMState );
|
||||
if ( (info.state() & NET::SkipTaskbar) != 0 )
|
||||
{
|
||||
slotWindowRemoved( w );
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( !findTask( w ))
|
||||
slotWindowAdded( w );
|
||||
}
|
||||
}
|
||||
|
||||
// check if any state we are interested in is marked dirty
|
||||
if(!(dirty & (NET::WMVisibleName|NET::WMVisibleIconName|NET::WMName|NET::WMState|NET::WMIcon|NET::XAWMState|NET::WMDesktop)) )
|
||||
return;
|
||||
|
||||
// find task
|
||||
KomposeTask* t = findTask( w );
|
||||
if (!t) return;
|
||||
|
||||
int oldTaskDesktop = t->onDesktop();
|
||||
// TODO: Instead of one refresh() method we could implement specific method for names and geometry, etc...
|
||||
// checked like this: if(dirty & (NET::WMDesktop|NET::WMState|NET::XAWMState))
|
||||
t->refresh();
|
||||
|
||||
// Finally check if the window has been moved to a different virtual desktop
|
||||
if( (dirty & NET::WMDesktop ) && ( oldTaskDesktop != t->onDesktop() ) )
|
||||
emit taskDesktopChanged( t, oldTaskDesktop, t->onDesktop() );
|
||||
}
|
||||
|
||||
|
||||
void KomposeTaskManager::slotWindowRemoved(WId w )
|
||||
{
|
||||
// find task
|
||||
KomposeTask* task = findTask( w );
|
||||
if (!task) return;
|
||||
|
||||
//kdDebug() << "KomposeTaskManager::slotWindowRemoved(WId w ) - Removing task %s", task->visibleNameWithState());
|
||||
tasklist.remove( task );
|
||||
delete task;
|
||||
}
|
||||
|
||||
void KomposeTaskManager::slotWindowAdded(WId w )
|
||||
{
|
||||
// ignore myself
|
||||
if ( QWidget::find(w) != 0 )
|
||||
return;
|
||||
// if ( KomposeViewManager::instance()->hasActiveView() && w == KomposeViewManager::instance()->getViewWidget()->winId() )
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
|
||||
KWin::WindowInfo info = KWin::windowInfo(w);
|
||||
|
||||
// ignore NET::Tool and other special window types
|
||||
NET::WindowType mytype = info.windowType(NET::NormalMask | NET::DesktopMask | NET::DockMask |
|
||||
NET::ToolbarMask | NET::MenuMask | NET::DialogMask | NET::OverrideMask
|
||||
| NET::TopMenuMask | NET::UtilityMask | NET::SplashMask);
|
||||
if (mytype != NET::Normal && mytype != NET::Override && mytype != NET::Unknown && mytype != NET::Dialog)
|
||||
return;
|
||||
|
||||
// ignore windows that want to be ignored by the taskbar
|
||||
if ((info.state() & NET::SkipTaskbar) != 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !info.valid() )
|
||||
return;
|
||||
|
||||
kdDebug() << "KomposeTaskManager::slotWindowAdded(WId " << w <<" ) - Adding KomposeTask" << endl;
|
||||
KomposeTask* t = new KomposeTask(w, kwin_module, this);
|
||||
tasklist.append(t);
|
||||
|
||||
emit newTask( t );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Called when Komposé requires screenshots of all tasks
|
||||
*/
|
||||
void KomposeTaskManager::slotUpdateScreenshots( bool switchDesktops )
|
||||
{
|
||||
kdDebug() << "KomposeTaskManager::slotUpdateScreenshots()" << endl;
|
||||
|
||||
QPtrListIterator<KomposeTask> it( tasklist );
|
||||
KomposeTask *task;
|
||||
|
||||
// Iterate through tasks sorted by desktops (this minimizes desktop switching if necessary)
|
||||
for ( int desk = -1; desk <= numDesks; ++desk )
|
||||
{
|
||||
// Desk == 0 should not be possible, however -1 means on all desks
|
||||
if (desk==0 || ( !switchDesktops && desk != KomposeViewManager::instance()->getDesktopBeforeSnaps()+1 ) )
|
||||
continue;
|
||||
|
||||
it.toFirst();
|
||||
while ( (task = it.current()) != 0 )
|
||||
{
|
||||
++it;
|
||||
if ( task->onDesktop() == desk )
|
||||
task->slotUpdateScreenshot();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* simulates a window activated event for the currently active window (no forcing of screenshots)
|
||||
*/
|
||||
void KomposeTaskManager::simulatePasvScreenshotEvent()
|
||||
{
|
||||
kdDebug() << "KomposeTaskManager::simulatePasvScreenshotEvent()" << endl;
|
||||
slotTaskActivated( kwin_module->activeWindow() );
|
||||
}
|
||||
|
||||
/**
|
||||
* Signals the task object that it's window has been activated
|
||||
*/
|
||||
void KomposeTaskManager::slotTaskActivated(WId winId)
|
||||
{
|
||||
kdDebug() << "KomposeTaskManager::slotTaskActivated ( " << winId << " )" << endl;
|
||||
QPtrListIterator<KomposeTask> it( tasklist );
|
||||
KomposeTask *task;
|
||||
while ( (task = it.current()) != 0 )
|
||||
{
|
||||
++it;
|
||||
if ( winId == task->window() )
|
||||
{
|
||||
task->slotActivated();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void KomposeTaskManager::slotDesktopCountChanged(int d)
|
||||
{
|
||||
numDesks = d;
|
||||
}
|
||||
|
||||
bool KomposeTaskManager::isOnTop(const KomposeTask* task)
|
||||
{
|
||||
if(!task) return false;
|
||||
|
||||
for (QValueList<WId>::ConstIterator it = kwin_module->stackingOrder().fromLast();
|
||||
it != kwin_module->stackingOrder().end(); --it )
|
||||
{
|
||||
for (KomposeTask* t = tasklist.first(); t != 0; t = tasklist.next() )
|
||||
{
|
||||
if ( (*it) == t->window() )
|
||||
{
|
||||
if ( t == task )
|
||||
return true;
|
||||
if ( !t->isIconified() && (t->isAlwaysOnTop() == task->isAlwaysOnTop()) )
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
QString KomposeTaskManager::getDesktopName(int desk) const
|
||||
{
|
||||
return kwin_module->desktopName(desk);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The kapp x11EventFilter method redirect to this method
|
||||
* @param event
|
||||
* @return
|
||||
*/
|
||||
bool KomposeTaskManager::processX11Event( XEvent *event )
|
||||
{
|
||||
#ifdef COMPOSITE
|
||||
if ( KomposeGlobal::instance()->hasXcomposite() && KomposeSettings::instance()->getUseComposite() )
|
||||
{
|
||||
if ( event->type == ConfigureNotify )
|
||||
{
|
||||
XConfigureEvent *e = &event->xconfigure;
|
||||
|
||||
KomposeTask* t = findTask( e->window, true );
|
||||
if (!t)
|
||||
return false;
|
||||
t->slotX11ConfigureNotify();
|
||||
return true;
|
||||
}
|
||||
else if ( event->type == KomposeGlobal::instance()->getDamageEvent() + XDamageNotify )
|
||||
{
|
||||
XDamageNotifyEvent *e = reinterpret_cast<XDamageNotifyEvent*>( event );
|
||||
// e->drawable is the window ID of the damaged window
|
||||
// e->geometry is the geometry of the damaged window
|
||||
// e->area is the bounding rect for the damaged area
|
||||
// e->damage is the damage handle returned by XDamageCreate()
|
||||
|
||||
// Subtract all the damage, repairing the window.
|
||||
XDamageSubtract( QPaintDevice::x11AppDisplay(), e->damage, None, None );
|
||||
if ( !KomposeViewManager::instance()->hasActiveView() )
|
||||
return true;
|
||||
|
||||
// FIXME: too many damage events are called. block findTask here...
|
||||
// FIXME: Don't try XDamage with KAsteroids! Do something to avoid 100% cpu usage
|
||||
KomposeTask* t = findTask( e->drawable );
|
||||
if (!t)
|
||||
return false;
|
||||
t->slotX11DamageNotify();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
void KomposeTaskManager::slotCurrentDesktopChanged(int d)
|
||||
{
|
||||
#ifdef COMPOSITE
|
||||
if ( KomposeGlobal::instance()->hasXcomposite() && KomposeSettings::instance()->getUseComposite() )
|
||||
{
|
||||
// Strangely a ConfigureNotify is only sent when I click on a window on the new desktop
|
||||
// and not when I cahnge the desktop, although the windows get mapped at this point.
|
||||
// Is this a X bug? However the following hack helps:
|
||||
// Do as if we received a ConfigureNotify event to update all backing pixmaps
|
||||
for (KomposeTask* t = tasklist.first(); t != 0; t = tasklist.next())
|
||||
if ( t->onDesktop() == d )
|
||||
t->slotX11ConfigureNotify();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
int KomposeTaskManager::getCurrentDesktopNum()
|
||||
{
|
||||
return kwin_module->currentDesktop();
|
||||
}
|
||||
|
||||
#include "komposetaskmanager.moc"
|
@ -0,0 +1,86 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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. *
|
||||
***************************************************************************/
|
||||
#ifndef KOMPOSETASKMANAGER_H
|
||||
#define KOMPOSETASKMANAGER_H
|
||||
|
||||
#include <qobject.h>
|
||||
#include <qptrlist.h>
|
||||
|
||||
|
||||
class KWinModule;
|
||||
class KomposeTaskManager;
|
||||
class KomposeTask;
|
||||
|
||||
typedef QPtrList<KomposeTask> TaskList;
|
||||
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeTaskManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
protected:
|
||||
KomposeTaskManager();
|
||||
|
||||
~KomposeTaskManager();
|
||||
|
||||
public:
|
||||
static KomposeTaskManager *instance();
|
||||
|
||||
bool isOnTop(const KomposeTask* task );
|
||||
|
||||
int getNumDesktops() const { return numDesks; }
|
||||
QString getDesktopName(int desk) const;
|
||||
int getCurrentDesktopNum();
|
||||
|
||||
TaskList getTasks() const { return tasklist; }
|
||||
|
||||
public slots:
|
||||
bool processX11Event( XEvent *event );
|
||||
void slotUpdateScreenshots( bool switchDesktops=true );
|
||||
void simulatePasvScreenshotEvent();
|
||||
|
||||
void slotStartWindowListeners();
|
||||
|
||||
protected slots:
|
||||
void slotTaskActivated(WId);
|
||||
void slotWindowAdded( WId w );
|
||||
void slotWindowRemoved( WId w );
|
||||
void slotWindowChanged( WId, unsigned int );
|
||||
void slotDesktopCountChanged(int);
|
||||
void slotCurrentDesktopChanged(int);
|
||||
void callCompositeRedirect();
|
||||
|
||||
signals:
|
||||
void newTask( KomposeTask* task );
|
||||
void taskDesktopChanged( KomposeTask* task, int fromDesktop, int toDesktop );
|
||||
|
||||
protected:
|
||||
KomposeTask* findTask(WId w, bool wmFrameIds = false);
|
||||
|
||||
private:
|
||||
KWinModule* kwin_module;
|
||||
TaskList tasklist; // list of tasks handled by the WM
|
||||
|
||||
int numDesks; // total num of desks
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,54 @@
|
||||
//
|
||||
// C++ Implementation: komposetaskprefswidget
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposetaskprefswidget.h"
|
||||
|
||||
#include "komposetaskwidget.h"
|
||||
#include "komposetask.h"
|
||||
#include "komposetaskprefswidget.h"
|
||||
#include "komposesettings.h"
|
||||
|
||||
#include <ktoolbar.h>
|
||||
#include <ktoolbarbutton.h>
|
||||
#include <kactioncollection.h>
|
||||
#include <kaction.h>
|
||||
#include <kshortcut.h>
|
||||
#include <klocale.h>
|
||||
|
||||
#include <qiconset.h>
|
||||
|
||||
KomposeTaskPrefsWidget::KomposeTaskPrefsWidget(KomposeTaskWidget *parent, const char *name)
|
||||
: QDockArea(Qt::Horizontal , QDockArea::Normal, parent, name)
|
||||
{
|
||||
KToolBar* pToolBar = new KToolBar( this, i18n("Task Actions") );
|
||||
pToolBar->setLabel(i18n("Task"));
|
||||
pToolBar->setResizeEnabled ( false );
|
||||
pToolBar->setMovingEnabled ( false );
|
||||
pToolBar->setHorizontallyStretchable ( false );
|
||||
pToolBar->setVerticallyStretchable ( false );
|
||||
pToolBar->setIconSize( 16 );
|
||||
|
||||
parent->getActMinimizeRestoreTask()->plug(pToolBar);
|
||||
parent->getActCloseTask()->plug(pToolBar);
|
||||
|
||||
lineUp(false);
|
||||
|
||||
resize(pToolBar->size());
|
||||
}
|
||||
|
||||
|
||||
KomposeTaskPrefsWidget::~KomposeTaskPrefsWidget()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
#include "komposetaskprefswidget.moc"
|
@ -0,0 +1,32 @@
|
||||
//
|
||||
// C++ Interface: komposetaskprefswidget
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#ifndef KOMPOSETASKPREFSWIDGET_H
|
||||
#define KOMPOSETASKPREFSWIDGET_H
|
||||
|
||||
#include <qdockarea.h>
|
||||
|
||||
class KomposeTaskWidget;
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeTaskPrefsWidget : public QDockArea
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KomposeTaskPrefsWidget(KomposeTaskWidget *parent = 0, const char *name = 0);
|
||||
|
||||
~KomposeTaskPrefsWidget();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,458 @@
|
||||
//
|
||||
// C++ Implementation: %{MODULE}
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
|
||||
#include "komposeglobal.h"
|
||||
#include "komposesettings.h"
|
||||
#include "komposeviewmanager.h"
|
||||
#include "komposetaskmanager.h"
|
||||
|
||||
#include <qpixmap.h>
|
||||
#include <qtimer.h>
|
||||
#include <kwin.h>
|
||||
#include <netwm.h>
|
||||
#include <qapplication.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
#include <time.h>
|
||||
|
||||
#include "komposetaskvisualizer.h"
|
||||
|
||||
|
||||
KomposeTaskVisualizer::KomposeTaskVisualizer(KomposeTask *parent, const char *name)
|
||||
: QObject(parent, name),
|
||||
task(parent),
|
||||
scaledScreenshotDirty(false),
|
||||
screenshotSuspended(false),
|
||||
screenshotBlocked(false),
|
||||
lasteffect( IEFFECT_NONE )
|
||||
{
|
||||
#ifdef COMPOSITE
|
||||
validBackingPix = false;
|
||||
compositeInit = false;
|
||||
#endif
|
||||
|
||||
screenshot.setOptimization( QPixmap::BestOptim );
|
||||
scaledScreenshot.setOptimization( QPixmap::BestOptim );
|
||||
|
||||
// Create highlight color modifier
|
||||
cmHighlight = imlib_create_color_modifier();
|
||||
imlib_context_set_color_modifier(cmHighlight);
|
||||
imlib_modify_color_modifier_brightness(0.13);
|
||||
|
||||
cmMinimized = imlib_create_color_modifier();
|
||||
imlib_context_set_color_modifier(cmMinimized);
|
||||
imlib_modify_color_modifier_brightness(-0.13);
|
||||
imlib_context_set_color_modifier(0);
|
||||
|
||||
if ( !KomposeSettings::instance()->getCacheScaledPixmaps() )
|
||||
{
|
||||
// clear cached pixmaps on viewclose
|
||||
connect( KomposeViewManager::instance(), SIGNAL(viewClosed()), this, SLOT(clearCached()) );
|
||||
}
|
||||
|
||||
initXComposite();
|
||||
connect( KomposeSettings::instance(), SIGNAL(settingsChanged()), this, SLOT(initXComposite()) );
|
||||
}
|
||||
|
||||
KomposeTaskVisualizer::~KomposeTaskVisualizer()
|
||||
{
|
||||
#ifdef COMPOSITE
|
||||
if ( compositeInit )
|
||||
XDamageDestroy( dpy, damage);
|
||||
#endif
|
||||
scaledScreenshot.resize(0,0);
|
||||
screenshot.resize(0,0);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Called from outside to retrieve a screenshot
|
||||
* @param pix The pixmap the screenshot will be rendered onto
|
||||
*/
|
||||
void KomposeTaskVisualizer::renderOnPixmap(QPixmap* pix, int effect)
|
||||
{
|
||||
if ( scaledScreenshotDirty || scaledScreenshot.isNull() || scaledScreenshot.size() != pix->size() ||
|
||||
KomposeSettings::instance()->getImageEffects() && (lasteffect != effect ) )
|
||||
{
|
||||
lasteffect = effect;
|
||||
renderScaledScreenshot( pix->size() );
|
||||
}
|
||||
|
||||
copyBlt ( pix, 0, 0, &scaledScreenshot, 0, 0, pix->width(), pix->height() );
|
||||
|
||||
// QPainter p( pix );
|
||||
// p.drawPixmap(0 ,0 , *scaledScreenshot, 0, 0, pix->width(), pix->height() );
|
||||
// p.end();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renders a scaled version of screenshot and stores it as scaledScreenshot
|
||||
* @param newSize
|
||||
*/
|
||||
void KomposeTaskVisualizer::renderScaledScreenshot( QSize newSize )
|
||||
{
|
||||
kdDebug() << "KomposeTaskVisualizer::renderScaledScreenshot() (" << task->window() << ") " << newSize.width() << "x" << newSize.height() << endl;
|
||||
|
||||
scaledScreenshot.resize( newSize );
|
||||
|
||||
if ( KomposeGlobal::instance()->hasXcomposite() && KomposeSettings::instance()->getUseComposite() )
|
||||
{
|
||||
#ifdef COMPOSITE
|
||||
if ( !validBackingPix )
|
||||
{
|
||||
// When we get here we have never referenced a backingpix...
|
||||
// FIXME: Currently it seems that there is no way to retrieve unmapped backing pixmaps,
|
||||
// even switching desktops won't work due to the latency of XComposite :(
|
||||
// Return a empty pixmap
|
||||
scaledScreenshot.fill(white);
|
||||
return;
|
||||
}
|
||||
|
||||
// Create a Screenshot qpixmap
|
||||
screenshot.resize( task->getGeometry().size() );
|
||||
|
||||
Picture picture = XRenderCreatePicture( dpy, windowBackingPix, format, CPSubwindowMode, &pa );
|
||||
XRenderComposite( dpy,
|
||||
hasAlpha ? PictOpOver : PictOpSrc,
|
||||
picture,
|
||||
None,
|
||||
screenshot.x11RenderHandle(),
|
||||
task->getGeometry().x() - task->getFrameGeometry().x(),
|
||||
task->getGeometry().y() - task->getFrameGeometry().y(),
|
||||
0, 0, 0, 0,
|
||||
screenshot.width(), screenshot.height() );
|
||||
XRenderFreePicture (dpy, picture);
|
||||
#endif
|
||||
|
||||
}
|
||||
/* if ( KomposeGlobal::instance()->hasXcomposite() && KomposeSettings::instance()->getUseComposite() )
|
||||
{
|
||||
// The XComposite way
|
||||
#ifdef COMPOSITE
|
||||
Picture picture = XRenderCreatePicture( dpy, windowBackingPix, format, CPSubwindowMode, &pa );
|
||||
QRect geom = task->getGeometry();
|
||||
|
||||
double scale = (double)pix->width() / (double)geom.width();
|
||||
XRenderSetPictureFilter( dpy, picture, FilterBilinear, 0, 0 );
|
||||
// Scaling matrix
|
||||
XTransform xform = {{
|
||||
{ XDoubleToFixed( 1 ), XDoubleToFixed( 0 ), XDoubleToFixed( 0 ) },
|
||||
{ XDoubleToFixed( 0 ), XDoubleToFixed( 1 ), XDoubleToFixed( 0 ) },
|
||||
{ XDoubleToFixed( 0 ), XDoubleToFixed( 0 ), XDoubleToFixed( scale ) }
|
||||
}};
|
||||
|
||||
XRenderSetPictureTransform( dpy, picture, &xform );
|
||||
|
||||
XRenderComposite( QPaintDevice::x11AppDisplay(),
|
||||
hasAlpha ? PictOpOver : PictOpSrc,
|
||||
picture,
|
||||
None,
|
||||
pix->x11RenderHandle(),
|
||||
0, 0, 0, 0,
|
||||
0, 0, pix->width(), pix->height() );
|
||||
#endif
|
||||
|
||||
}
|
||||
else
|
||||
{*/
|
||||
// Scale and render screenshot on scaledScreenshot
|
||||
imlib_context_set_anti_alias(1);
|
||||
imlib_context_set_drawable( screenshot.handle() );
|
||||
Imlib_Image imgOrig = imlib_create_image_from_drawable((Pixmap)0, 0, 0, screenshot.width(), screenshot.height(), 1);
|
||||
imlib_context_set_image( imgOrig );
|
||||
Imlib_Image img = imlib_create_cropped_scaled_image(0, 0, screenshot.width(), screenshot.height(), newSize.width(), newSize.height());
|
||||
imlib_free_image();
|
||||
imlib_context_set_image( img );
|
||||
applyEffect();
|
||||
imlib_context_set_drawable( scaledScreenshot.handle() );
|
||||
imlib_render_image_on_drawable_at_size(0, 0, newSize.width(), newSize.height());
|
||||
imlib_free_image();
|
||||
// }
|
||||
scaledScreenshotDirty = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Called whenever the Window has been activated
|
||||
*/
|
||||
void KomposeTaskVisualizer::slotTaskActivated()
|
||||
{
|
||||
if ( KomposeGlobal::instance()->hasXcomposite() && KomposeSettings::instance()->getUseComposite() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( KomposeViewManager::instance()->getBlockScreenshots() && !screenshotSuspended )
|
||||
{
|
||||
// Retry 1 sec later
|
||||
screenshotSuspended = true;
|
||||
QTimer::singleShot( 500, this, SLOT( slotTaskActivated() ) );
|
||||
}
|
||||
screenshotSuspended = false;
|
||||
|
||||
// Grab a Passive Screenshot
|
||||
if ( KomposeSettings::instance()->getPassiveScreenshots() &&
|
||||
!KomposeViewManager::instance()->hasActiveView() &&
|
||||
!KomposeViewManager::instance()->getBlockScreenshots() )
|
||||
{
|
||||
kdDebug() << "KomposeTaskVisualizer::slotTaskActivated() (WId " << task->window() << ") - Screenshot already exists, but passive mode on - Grabbing new one." << endl;
|
||||
// Use a timer to make task switching feel more responsive
|
||||
QTimer::singleShot( 300, this, SLOT( captureScreenshot_GrabWindow() ) );
|
||||
//captureScreenshot_GrabWindow();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Called whenever Kompose needs a screenshot to display (normally before a view is shown)
|
||||
*/
|
||||
void KomposeTaskVisualizer::slotUpdateScreenshot()
|
||||
{
|
||||
#ifdef COMPOSITE
|
||||
if ( KomposeGlobal::instance()->hasXcomposite() && KomposeSettings::instance()->getUseComposite() )
|
||||
{
|
||||
if ( !validBackingPix )
|
||||
{
|
||||
kdDebug() << "KomposeTaskVisualizer::slotUpdateScreenshot() (WId " << task->window() << ") - No backing pixmap referenced. Bad :(" << endl;
|
||||
// When we get here we have never referenced a backingpix...
|
||||
// FIXME: Currently it seems that there is no way to retrieve unmapped backing pixmaps,
|
||||
// even switching desktops won't work due to the latency of XComposite :(
|
||||
}
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
// If no screenshot exists grab one via activate/raise & capture
|
||||
if ( screenshot.isNull() )
|
||||
{
|
||||
bool iconifyLater = false;
|
||||
|
||||
if ( task->isIconified() == true )
|
||||
{
|
||||
kdDebug() << "KomposeTaskVisualizer::slotUpdateScreenshot() (WId " << task->window() << ") - Window iconified... we have to raise it and iconify it again later." << endl;
|
||||
iconifyLater = true;
|
||||
}
|
||||
|
||||
kdDebug() << "KomposeTaskVisualizer::slotUpdateScreenshot() (WId " << task->window() << ") - Forcing activation (no screenshot exists)" << endl;
|
||||
|
||||
task->activate();
|
||||
QApplication::flushX();
|
||||
QApplication::syncX();
|
||||
|
||||
// Wait until window is fully redrawn
|
||||
struct timespec req, rem;
|
||||
req.tv_sec = 0;
|
||||
req.tv_nsec = KomposeSettings::instance()->getScreenshotGrabDelay();
|
||||
while(nanosleep(&req, &rem))
|
||||
req = rem;
|
||||
|
||||
QApplication::flushX();
|
||||
//task->refresh();
|
||||
|
||||
// Finally capture!
|
||||
screenshot = QPixmap::grabWindow( task->window() );
|
||||
//captureScreenshot_GrabWindow();
|
||||
|
||||
// Restore if formerly iconified
|
||||
if ( iconifyLater )
|
||||
QTimer::singleShot( 1000, task, SLOT( iconify() ) );
|
||||
|
||||
scaledScreenshotDirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This should be called whenever the window is unmapped as XComposite will reallocate
|
||||
* or the backing pixmap (on resize, minimize, virt desk change, etc)
|
||||
*/
|
||||
void KomposeTaskVisualizer::updateXCompositeNamedPixmap()
|
||||
{
|
||||
#ifdef COMPOSITE
|
||||
if ( compositeInit &&
|
||||
KomposeGlobal::instance()->hasXcomposite() && KomposeSettings::instance()->getUseComposite())
|
||||
{
|
||||
if( !task->isOnCurrentDesktop() )
|
||||
{
|
||||
kdDebug() << "KomposeTaskVisualizer::updateXCompositeNamedPixmap() (WId " << task->window() << ") - Not reallocationg (unmapped)" << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
kdDebug() << "KomposeTaskVisualizer::updateXCompositeNamedPixmap() (WId " << task->window() << ") - Reallocating backing pixmap" << endl;
|
||||
if ( validBackingPix )
|
||||
XFreePixmap(dpy, windowBackingPix);
|
||||
|
||||
windowBackingPix = XCompositeNameWindowPixmap(dpy, task->wmFrame() );
|
||||
|
||||
validBackingPix = true;
|
||||
scaledScreenshotDirty = true;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Initialise Composite backing store for this window
|
||||
*/
|
||||
void KomposeTaskVisualizer::initXComposite()
|
||||
{
|
||||
#ifdef COMPOSITE
|
||||
if ( !compositeInit && KomposeGlobal::instance()->hasXcomposite() && KomposeSettings::instance()->getUseComposite())
|
||||
{
|
||||
dpy = QPaintDevice::x11AppDisplay();
|
||||
|
||||
connect( task, SIGNAL(x11ConfigureNotify()), this, SLOT(updateXCompositeNamedPixmap()));
|
||||
XSelectInput( dpy, task->wmFrame(), StructureNotifyMask );
|
||||
connect( task, SIGNAL( x11DamageNotify() ), SLOT( setScaledScreenshotDirty() ) );
|
||||
|
||||
XWindowAttributes attr;
|
||||
XGetWindowAttributes( dpy, task->wmFrame(), &attr );
|
||||
format = XRenderFindVisualFormat( dpy, attr.visual );
|
||||
hasAlpha = ( format->type == PictTypeDirect && format->direct.alphaMask ); //FIXME: move this to komposetask
|
||||
// int x = attr.x;
|
||||
// int y = attr.y;
|
||||
// int width = attr.width;
|
||||
// int height = attr.height;
|
||||
pa.subwindow_mode = IncludeInferiors; // Don't clip child widgets
|
||||
compositeInit = true;
|
||||
updateXCompositeNamedPixmap();
|
||||
|
||||
kdDebug() << "KomposeTaskVisualizer::initXComposite() (WId " << task->window() << ") - Setting up Damage extension" << endl;
|
||||
// Create a damage handle for the window, and specify that we want an event whenever the
|
||||
// damage state changes from not damaged to damaged.
|
||||
damage = XDamageCreate( dpy, task->window(), XDamageReportNonEmpty );
|
||||
}
|
||||
else
|
||||
{
|
||||
disconnect( task, SIGNAL(x11ConfigureNotify()), this, SLOT(updateXCompositeNamedPixmap()));
|
||||
disconnect( task, SIGNAL( x11DamageNotify() ), this, SLOT( setScaledScreenshotDirty() ) );
|
||||
if ( compositeInit )
|
||||
{
|
||||
XDamageDestroy( dpy, damage);
|
||||
compositeInit = false;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Grabs a screenshot the old fashioned way
|
||||
*/
|
||||
void KomposeTaskVisualizer::captureScreenshot_GrabWindow()
|
||||
{
|
||||
if ( screenshotBlocked || ( !(task->isActive() && task->isOnTop()) ) )
|
||||
{
|
||||
kdDebug() << "KomposeTaskVisualizer::captureScreenshot_GrabWindow() (WId " << task->window() << ") - Could not grab screenshot." << endl;
|
||||
return;
|
||||
}
|
||||
//task->activate();
|
||||
|
||||
|
||||
// QWidget *rootWin = qApp->desktop();
|
||||
// screenshot = QPixmap::grabWindow( rootWin->winId(), geom.x(), geom.y(), geom.width(), geom.height() );
|
||||
|
||||
screenshot = QPixmap::grabWindow( task->window() );
|
||||
scaledScreenshotDirty = true;
|
||||
|
||||
// We've just grabbed a screenshot and don't want this to happen again in the next 3?! seconds
|
||||
screenshotBlocked = true;
|
||||
QTimer::singleShot( 3000, this, SLOT( enablePasvScreenshots() ) );
|
||||
|
||||
kdDebug() << "KomposeTaskVisualizer::captureScreenshot_GrabWindow() (WId " << task->window() << ") - Grabbed screenshot." << endl;
|
||||
|
||||
// Code to create a screenshot directly as an Imlib image
|
||||
|
||||
// QRect geom = windowInfo.geometry();
|
||||
// Display *disp;
|
||||
// Visual *vis;
|
||||
// Colormap cm;
|
||||
// int screen;
|
||||
//
|
||||
// //get display information
|
||||
// disp = XOpenDisplay(0);
|
||||
// screen = DefaultScreen(disp);
|
||||
// vis = DefaultVisual(disp, screen);
|
||||
// cm = DefaultColormap(disp, screen);
|
||||
//
|
||||
// //set imlib properties
|
||||
// imlib_context_set_display(disp);
|
||||
// imlib_context_set_visual(vis);
|
||||
// imlib_context_set_colormap(cm);
|
||||
// imlib_context_set_drawable(RootWindow(disp, screen));
|
||||
// imlib_context_set_anti_alias(1);
|
||||
// imlib_context_set_blend(0);
|
||||
//
|
||||
// Imlib_Image img = imlib_create_image_from_drawable((Pixmap)0,geom.x(), geom.y(), geom.width(), geom.height(),1);
|
||||
//
|
||||
//
|
||||
// screenshot->setImage( img );
|
||||
//
|
||||
// XCloseDisplay(disp);
|
||||
|
||||
//kdDebug() << "KomposeTaskVisualizer::captureScreenshot() - Created Screenshot: x:%d y:%d size:%dx%d", geom.x(), geom.y(), screenshot->originalWidth(), screenshot->originalHeight() );
|
||||
}
|
||||
|
||||
void KomposeTaskVisualizer::enablePasvScreenshots()
|
||||
{
|
||||
screenshotBlocked = false;
|
||||
}
|
||||
|
||||
void KomposeTaskVisualizer::clearCached()
|
||||
{
|
||||
scaledScreenshot.resize(0,0);
|
||||
}
|
||||
|
||||
|
||||
void KomposeTaskVisualizer::applyEffect()
|
||||
{
|
||||
imlib_context_set_color_modifier(0);
|
||||
|
||||
if ( lasteffect == IEFFECT_MINIMIZED || lasteffect == IEFFECT_MINIMIZED_AND_TITLE )
|
||||
{
|
||||
//FIXME: maybe there is a faster tint filter?!
|
||||
imlib_context_set_color_modifier(cmMinimized);
|
||||
}
|
||||
|
||||
if ( lasteffect == IEFFECT_HIGHLIGHT )
|
||||
{
|
||||
//FIXME: maybe there is a faster tint filter?!
|
||||
imlib_context_set_color_modifier(cmHighlight);
|
||||
}
|
||||
|
||||
if ( lasteffect == IEFFECT_TITLE || lasteffect == IEFFECT_MINIMIZED_AND_TITLE )
|
||||
{
|
||||
/* we can blend stuff now */
|
||||
imlib_context_set_blend(1);
|
||||
/* our color range */
|
||||
Imlib_Color_Range range;
|
||||
|
||||
/* draw a gradient on top of things at the top left of the window */
|
||||
/* create a range */
|
||||
range = imlib_create_color_range();
|
||||
imlib_context_set_color_range(range);
|
||||
imlib_context_set_color(255, 255, 255, 0);
|
||||
imlib_add_color_to_color_range(0);
|
||||
imlib_context_set_color(255, 255, 255, 255);
|
||||
imlib_add_color_to_color_range(1000);
|
||||
/* draw the range */
|
||||
//imlib_context_set_image(myIm);
|
||||
imlib_image_fill_color_range_rectangle(0, 0, scaledScreenshot.width(), KomposeSettings::instance()->getWindowTitleFontAscent() * 3, -180.0);
|
||||
/* free it */
|
||||
imlib_free_color_range();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#include "komposetaskvisualizer.moc"
|
@ -0,0 +1,87 @@
|
||||
//
|
||||
// C++ Interface: %{MODULE}
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#ifndef KOMPOSETASKVISUALIZER_H
|
||||
#define KOMPOSETASKVISUALIZER_H
|
||||
|
||||
#include <qobject.h>
|
||||
|
||||
#include "komposetask.h"
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <Imlib2.h>
|
||||
|
||||
#ifdef COMPOSITE
|
||||
#include <X11/Xatom.h>
|
||||
#include <X11/extensions/Xcomposite.h>
|
||||
#include <X11/extensions/Xdamage.h>
|
||||
#include <X11/extensions/Xrender.h>
|
||||
#endif
|
||||
|
||||
enum ImageEffect { IEFFECT_NONE, IEFFECT_TITLE, IEFFECT_MINIMIZED, IEFFECT_MINIMIZED_AND_TITLE, IEFFECT_HIGHLIGHT };
|
||||
|
||||
class QPixmap;
|
||||
class QSize;
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeTaskVisualizer : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KomposeTaskVisualizer(KomposeTask *parent, const char *name = 0);
|
||||
~KomposeTaskVisualizer();
|
||||
|
||||
void renderOnPixmap( QPixmap* pix, int effect );
|
||||
|
||||
protected:
|
||||
void applyEffect();
|
||||
|
||||
protected slots:
|
||||
void initXComposite();
|
||||
void captureScreenshot_GrabWindow();
|
||||
void updateXCompositeNamedPixmap();
|
||||
void renderScaledScreenshot( QSize size );
|
||||
|
||||
void setScaledScreenshotDirty() { scaledScreenshotDirty = true; }
|
||||
void clearCached();
|
||||
void enablePasvScreenshots();
|
||||
|
||||
public slots:
|
||||
void slotTaskActivated();
|
||||
void slotUpdateScreenshot();
|
||||
|
||||
private:
|
||||
KomposeTask *task;
|
||||
QPixmap screenshot;
|
||||
QPixmap scaledScreenshot;
|
||||
bool scaledScreenshotDirty;
|
||||
bool screenshotSuspended; // suspend pasv screenshots for this task
|
||||
bool screenshotBlocked; // dis/enable pasv screenshots for this task
|
||||
|
||||
Imlib_Color_Modifier cmHighlight, cmMinimized;
|
||||
int lasteffect; // the effect that has been applied to scaledScreenshot
|
||||
|
||||
#ifdef COMPOSITE
|
||||
Pixmap windowBackingPix;
|
||||
bool validBackingPix;
|
||||
Display *dpy;
|
||||
XRenderPictFormat *format;
|
||||
XRenderPictureAttributes pa;
|
||||
bool hasAlpha;
|
||||
Damage damage;
|
||||
bool compositeInit; // true if composite&damage has been initialised
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,427 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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 "komposetaskwidget.h"
|
||||
|
||||
#include "komposetaskmanager.h"
|
||||
#include "komposeviewmanager.h"
|
||||
#include "komposetask.h"
|
||||
#include "komposetaskcontainerwidget.h"
|
||||
#include "komposetaskprefswidget.h"
|
||||
#include "komposesettings.h"
|
||||
#include "komposeglobal.h"
|
||||
#include "komposesettings.h"
|
||||
|
||||
#include <qpixmap.h>
|
||||
#include <qimage.h>
|
||||
#include <qpainter.h>
|
||||
#include <qdragobject.h>
|
||||
#include <qapplication.h>
|
||||
#include <qtooltip.h>
|
||||
#include <qiconset.h>
|
||||
#include <qtimer.h>
|
||||
#include <qcolor.h>
|
||||
#include <qfont.h>
|
||||
|
||||
#include <kcursor.h>
|
||||
#include <klocale.h>
|
||||
#include <kpopupmenu.h>
|
||||
#include <kactioncollection.h>
|
||||
#include <kaction.h>
|
||||
#include <kapplication.h>
|
||||
#include <kiconloader.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
#include "komposetaskvisualizer.h"
|
||||
|
||||
KomposeTaskWidget::KomposeTaskWidget(KomposeTask *t, QWidget *parent, KomposeLayout *l, const char *name)
|
||||
: KomposeWidget(parent, l, name),
|
||||
highlight(false),
|
||||
task(t)
|
||||
{
|
||||
setWFlags( WStaticContents | WRepaintNoErase | WResizeNoErase ); // avoid redraw errors
|
||||
setBackgroundMode( Qt::NoBackground ); // avoid flickering
|
||||
|
||||
QToolTip::add( this, task->visibleNameWithState() );
|
||||
|
||||
pm_dbBackground.setOptimization( QPixmap::BestOptim );
|
||||
setBackgroundMode( Qt::NoBackground );
|
||||
//setBackgroundPixmap(pm_dbBackground);
|
||||
|
||||
initActions();
|
||||
initMenu();
|
||||
prefWidget = new KomposeTaskPrefsWidget( this, "Task prefs" );
|
||||
prefWidget->hide();
|
||||
setActionIcons();
|
||||
|
||||
//connect( t, SIGNAL( destroyed() ), this, SLOT( slotTaskDestroyed() ) );
|
||||
connect( t, SIGNAL( closed() ), this, SLOT( slotTaskDestroyed() ) );
|
||||
connect( t, SIGNAL( stateChanged() ), this, SLOT( drawWidgetAndRepaint() ) );
|
||||
connect( t, SIGNAL( stateChanged() ), this, SLOT( reInitMenu() ) );
|
||||
|
||||
#ifdef COMPOSITE
|
||||
if ( KomposeGlobal::instance()->hasXcomposite() && KomposeSettings::instance()->getUseComposite() )
|
||||
{
|
||||
connect( t, SIGNAL( x11DamageNotify() ), this, SLOT( drawWidgetAndRepaint() ) );
|
||||
}
|
||||
#endif
|
||||
//setFocusPolicy(QWidget::ClickFocus);
|
||||
setFocusPolicy(QWidget::StrongFocus);
|
||||
|
||||
initFonts();
|
||||
}
|
||||
|
||||
|
||||
KomposeTaskWidget::~KomposeTaskWidget()
|
||||
{
|
||||
prefWidget->deleteLater();
|
||||
menu->deleteLater();
|
||||
|
||||
delete actMinimizeRestoreTask;
|
||||
delete actCloseTask;
|
||||
delete taskActionCollection;
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::reInitMenu()
|
||||
{
|
||||
delete menu;
|
||||
initMenu();
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::initFonts()
|
||||
{
|
||||
titleFont = KomposeSettings::instance()->getWindowTitleFont();
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::slotTaskDestroyed()
|
||||
{
|
||||
disconnect( task, SIGNAL( closed() ), this, SLOT( slotTaskDestroyed() ) );
|
||||
disconnect( task, SIGNAL( stateChanged() ), this, SLOT( drawWidgetAndRepaint() ) );
|
||||
|
||||
//if (KomposeViewManager::instance()->hasActiveView())
|
||||
emit requestRemoval(this);
|
||||
}
|
||||
void KomposeTaskWidget::resizeEvent ( QResizeEvent * e )
|
||||
{
|
||||
if ( e->oldSize() != e->size())
|
||||
{
|
||||
prefWidget->move(width() - prefWidget->width() - 3, 3);
|
||||
drawWidgetAndRepaint();
|
||||
}
|
||||
KomposeWidget::resizeEvent( e );
|
||||
}
|
||||
|
||||
|
||||
void KomposeTaskWidget::paintEvent ( QPaintEvent * )
|
||||
{
|
||||
if (size().height() < 40 ) // small hack that will prevent drawing on init
|
||||
return;
|
||||
|
||||
if ( pm_dbBackground.isNull() )
|
||||
drawWidget();
|
||||
bitBlt( this, 0, 0, &pm_dbBackground, 0, 0, width(), height() );
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::drawWidgetAndRepaint()
|
||||
{
|
||||
if (size().height() < 40 ) // small hack that will prevent drawing on init
|
||||
return;
|
||||
|
||||
drawWidget();
|
||||
repaint();
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::drawWidget()
|
||||
{
|
||||
if ( !KomposeViewManager::instance()->hasActiveView() || !isShown() )
|
||||
return;
|
||||
|
||||
pm_dbBackground.resize( width(), height() );
|
||||
//pm_dbBackground.fill(white);
|
||||
|
||||
QPainter p( &pm_dbBackground );
|
||||
|
||||
int effect = IEFFECT_NONE;
|
||||
|
||||
if ( KomposeSettings::instance()->getShowWindowTitles() && !task->isIconified() )
|
||||
effect = IEFFECT_TITLE;
|
||||
if ( KomposeSettings::instance()->getShowWindowTitles() && task->isIconified() )
|
||||
effect = IEFFECT_MINIMIZED_AND_TITLE;
|
||||
if ( !KomposeSettings::instance()->getShowWindowTitles() && task->isIconified() )
|
||||
effect = IEFFECT_MINIMIZED;
|
||||
// if ( highlight ) // I hate it, so I disable it!
|
||||
// effect = IEFFECT_HIGHLIGHT;
|
||||
|
||||
task->getVisualizer()->renderOnPixmap(&pm_dbBackground, effect);
|
||||
|
||||
// Icon
|
||||
QPoint titleTextPos( 6, KomposeSettings::instance()->getWindowTitleFontHeight() + 1);
|
||||
if ( KomposeSettings::instance()->getShowIcons() )
|
||||
{
|
||||
QPixmap icon = task->getIcon( KomposeSettings::instance()->getIconSizePixels() );
|
||||
|
||||
// Place the icon left or under the text, according to it's size
|
||||
if ( KomposeSettings::instance()->getIconSize() < 2 || icon.height() < 50 )
|
||||
{
|
||||
// Medium sized or tiny Icon
|
||||
p.drawPixmap( QPoint(5, 5), icon );
|
||||
titleTextPos.setX(icon.width() + 10);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Big Icon
|
||||
p.drawPixmap( QPoint(5, 5), icon );
|
||||
// titleTextPos.setX(icon.width());
|
||||
}
|
||||
}
|
||||
|
||||
// Title
|
||||
if ( KomposeSettings::instance()->getShowWindowTitles() )
|
||||
{
|
||||
p.setFont(titleFont);
|
||||
if ( KomposeSettings::instance()->getShowWindowTitleShadow() )
|
||||
{
|
||||
p.setPen( KomposeSettings::instance()->getWindowTitleFontShadowColor() );
|
||||
p.drawText( titleTextPos, task->visibleNameWithState() );
|
||||
}
|
||||
p.setPen( KomposeSettings::instance()->getWindowTitleFontColor() );
|
||||
p.drawText( QPoint( titleTextPos.x()-2, titleTextPos.y()-2 ), task->visibleNameWithState() );
|
||||
}
|
||||
|
||||
// Border
|
||||
if (!highlight)
|
||||
{
|
||||
QPen pen( gray, 1, Qt::SolidLine );
|
||||
p.setPen( pen );
|
||||
p.drawRect(rect());
|
||||
}
|
||||
else
|
||||
{
|
||||
QPen pen( black, 2, Qt::DotLine );
|
||||
p.setPen( pen );
|
||||
p.drawRect( QRect( 1, 1, rect().width()-1, rect().height()-1 ) );
|
||||
}
|
||||
|
||||
p.end();
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::mouseReleaseEvent ( QMouseEvent * e )
|
||||
{
|
||||
if ( !rect().contains( e->pos() ) )
|
||||
return;
|
||||
KomposeViewManager::instance()->activateTask( task );
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::mouseMoveEvent ( QMouseEvent * e )
|
||||
{
|
||||
if ( e->state() == Qt::LeftButton )
|
||||
startDrag();
|
||||
}
|
||||
|
||||
// void KomposeTaskWidget::mouseDoubleClickEvent ( QMouseEvent * e )
|
||||
// {
|
||||
// if ( !rect().contains( e->pos() ) )
|
||||
// return;
|
||||
// KomposeTaskManager::instance()->activateTask( task );
|
||||
// }
|
||||
|
||||
void KomposeTaskWidget::keyReleaseEvent ( QKeyEvent * e )
|
||||
{
|
||||
if ( e->key() == Qt::Key_Return || e->key() == Qt::Key_Space )
|
||||
{
|
||||
kdDebug() << "KomposeTaskWidget::keyReleaseEvent - activating Task!" << endl;
|
||||
e->accept();
|
||||
KomposeViewManager::instance()->activateTask( task );
|
||||
return;
|
||||
}
|
||||
else if ( e->key() == Qt::Key_C )
|
||||
{
|
||||
kdDebug() << "KomposeTaskWidget::keyReleaseEvent - closing Task!" << endl;
|
||||
task->close();
|
||||
e->accept();
|
||||
}
|
||||
else if ( e->key() == Qt::Key_M )
|
||||
{
|
||||
kdDebug() << "KomposeTaskWidget::keyReleaseEvent - toggling state!" << endl;
|
||||
task->minimizeOrRestore();
|
||||
e->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
kdDebug() << "KomposeTaskWidget::keyReleaseEvent - ignored..." << endl;
|
||||
e->ignore();
|
||||
}
|
||||
KomposeWidget::keyReleaseEvent(e);
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::leaveEvent ( QEvent * )
|
||||
{
|
||||
highlight = false;
|
||||
unsetCursor();
|
||||
// drawWidgetAndRepaint();
|
||||
|
||||
prefWidget->hide();
|
||||
if ( parentWidget() )
|
||||
parentWidget()->setFocus();
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::enterEvent ( QEvent * )
|
||||
{
|
||||
setFocus();
|
||||
setCursor( KCursor::handCursor() );
|
||||
highlight = true;
|
||||
// drawWidgetAndRepaint();
|
||||
|
||||
prefWidget->show();
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::focusInEvent ( QFocusEvent * )
|
||||
{
|
||||
highlight = true;
|
||||
drawWidgetAndRepaint();
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::focusOutEvent ( QFocusEvent * )
|
||||
{
|
||||
highlight = false;
|
||||
drawWidgetAndRepaint();
|
||||
}
|
||||
|
||||
int KomposeTaskWidget::getHeightForWidth ( int w ) const
|
||||
{
|
||||
//kdDebug() << "KomposeTaskWidget::getHeightForWidth()");
|
||||
return task->getHeightForWidth(w);
|
||||
}
|
||||
|
||||
int KomposeTaskWidget::getWidthForHeight ( int h ) const
|
||||
{
|
||||
//kdDebug() << "KomposeTaskWidget::getWidthForHeight()");
|
||||
return task->getWidthForHeight(h);
|
||||
}
|
||||
|
||||
double KomposeTaskWidget::getAspectRatio()
|
||||
{
|
||||
//kdDebug() << "KomposeTaskWidget::getAspectRatio()");
|
||||
return task->getAspectRatio();
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::startDrag()
|
||||
{
|
||||
// The text is just a dummy
|
||||
// FIXME: Maybe we should us a "Task"-Mimetype
|
||||
QDragObject *d = new QTextDrag( "toDesktop()", this );
|
||||
d->dragCopy();
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::setGeometry( const QRect &rect )
|
||||
{
|
||||
int width = task->getGeometry().width();
|
||||
int height = task->getGeometry().height();
|
||||
|
||||
// Don't scale images bigger than they actually are
|
||||
if ( rect.width() > width || rect.height() > height )
|
||||
{
|
||||
QWidget::setGeometry( QRect( rect.left(), rect.top(), width, height ) );
|
||||
}
|
||||
else
|
||||
QWidget::setGeometry( rect );
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::initActions()
|
||||
{
|
||||
taskActionCollection = new KActionCollection( this );
|
||||
|
||||
actCloseTask = new KAction( i18n("Close"), "fileclose", Key_Delete , task,
|
||||
SLOT( close() ), taskActionCollection, "closeTask" );
|
||||
actCloseTask->setToolTip(i18n("Close"));
|
||||
actMinimizeRestoreTask = new KAction( i18n("Minimize/Restore"), "", KShortcut() , this,
|
||||
SLOT( slotMinimizeRestoreToggled() ), taskActionCollection, "minimizeRestoreTask" );
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::initMenu()
|
||||
{
|
||||
menu = new KPopupMenu();
|
||||
|
||||
actMinimizeRestoreTask->plug(menu);
|
||||
|
||||
// toDesktop menu
|
||||
QPopupMenu* m = new QPopupMenu( this );
|
||||
m->setCheckable( true );
|
||||
|
||||
int id = m->insertItem( i18n("&All Desktops"), task, SLOT( toDesktop(int) ) );
|
||||
m->setItemParameter( id, 0 ); // 0 means all desktops
|
||||
m->setItemChecked( id, task->isOnAllDesktops() );
|
||||
|
||||
m->insertSeparator();
|
||||
|
||||
for( int i = 1; i <= KomposeTaskManager::instance()->getNumDesktops(); i++ )
|
||||
{
|
||||
QString name = QString( "&%1 %2" ).arg( i ).arg( KomposeTaskManager::instance()->getDesktopName( i ).replace( '&', "&&" ) );
|
||||
id = m->insertItem( name, task, SLOT( toDesktop(int) ) );
|
||||
m->setItemParameter( id, i );
|
||||
m->setItemChecked( id, !task->isOnAllDesktops() && task->onDesktop() == i );
|
||||
}
|
||||
menu->insertItem(i18n("To &Desktop"), m);
|
||||
|
||||
menu->insertSeparator();
|
||||
actCloseTask->plug(menu);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the toggle icons for some actions
|
||||
*
|
||||
* The inverse flag is a hack to allow toggling of the icons when the minimized/restored event
|
||||
* hasn't yet reached the Task object ( which is the case on buttonpress)
|
||||
*/
|
||||
void KomposeTaskWidget::setActionIcons( bool inverse )
|
||||
{
|
||||
if ( ( task->isIconified() && !inverse ) || ( !task->isIconified() && inverse ) )
|
||||
actMinimizeRestoreTask->setIconSet( kapp->iconLoader()->loadIconSet ( "up", KIcon::NoGroup, 16 ) );
|
||||
else
|
||||
actMinimizeRestoreTask->setIconSet( kapp->iconLoader()->loadIconSet ( "bottom", KIcon::NoGroup, 16 ) );
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::slotMinimizeRestoreToggled()
|
||||
{
|
||||
setActionIcons( true );
|
||||
task->minimizeOrRestore();
|
||||
}
|
||||
|
||||
void KomposeTaskWidget::mousePressEvent ( QMouseEvent * e )
|
||||
{
|
||||
if ( !rect().contains( e->pos() ) )
|
||||
return;
|
||||
|
||||
switch ( e->button() )
|
||||
{
|
||||
case LeftButton:
|
||||
break;
|
||||
case MidButton:
|
||||
// fall through
|
||||
case RightButton:
|
||||
menu->popup( e->globalPos() );
|
||||
break;
|
||||
default:
|
||||
// nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#include "komposetaskwidget.moc"
|
@ -0,0 +1,100 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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. *
|
||||
***************************************************************************/
|
||||
#ifndef KOMPOSETASKWIDGET_H
|
||||
#define KOMPOSETASKWIDGET_H
|
||||
|
||||
#include "komposewidget.h"
|
||||
#include "komposetaskprefswidget.h"
|
||||
|
||||
#include <qimage.h>
|
||||
#include <qpixmap.h>
|
||||
|
||||
|
||||
class KomposeTask;
|
||||
class KomposeLayout;
|
||||
class KPopupMenu;
|
||||
class KAction;
|
||||
class KActionCollection;
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeTaskWidget : public KomposeWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KomposeTaskWidget(KomposeTask *t, QWidget *parent = 0, KomposeLayout *l = 0, const char *name = 0);
|
||||
|
||||
~KomposeTaskWidget();
|
||||
|
||||
int getHeightForWidth( int w ) const;
|
||||
int getWidthForHeight( int h ) const;
|
||||
double getAspectRatio();
|
||||
|
||||
KomposeTask* getTask() const { return task; };
|
||||
KAction* getActMinimizeRestoreTask() { return actMinimizeRestoreTask; }
|
||||
KAction* getActCloseTask() { return actCloseTask; }
|
||||
|
||||
signals:
|
||||
void requestRemoval(KomposeWidget*);
|
||||
|
||||
protected:
|
||||
void paintEvent ( QPaintEvent * );
|
||||
void mouseReleaseEvent ( QMouseEvent * e );
|
||||
void mousePressEvent ( QMouseEvent * e );
|
||||
void mouseMoveEvent ( QMouseEvent * e );
|
||||
void leaveEvent ( QEvent * );
|
||||
void enterEvent ( QEvent * );
|
||||
void resizeEvent ( QResizeEvent * );
|
||||
void focusInEvent ( QFocusEvent * );
|
||||
void focusOutEvent ( QFocusEvent * );
|
||||
void keyReleaseEvent ( QKeyEvent * e );
|
||||
|
||||
void startDrag();
|
||||
void initActions();
|
||||
void initMenu();
|
||||
|
||||
protected slots:
|
||||
void slotTaskDestroyed();
|
||||
void drawWidget();
|
||||
void drawWidgetAndRepaint();
|
||||
void initFonts();
|
||||
void setGeometry( const QRect &rect );
|
||||
void reInitMenu();
|
||||
|
||||
void slotMinimizeRestoreToggled();
|
||||
void setActionIcons( bool inverse=false );
|
||||
|
||||
private:
|
||||
QPixmap pm_dbBackground;
|
||||
|
||||
bool highlight; // Highlight widget?
|
||||
QFont titleFont;
|
||||
|
||||
KomposeTask* task;
|
||||
KomposeTaskPrefsWidget *prefWidget;
|
||||
KPopupMenu *menu;
|
||||
|
||||
KActionCollection *taskActionCollection;
|
||||
KAction *actMinimizeRestoreTask;
|
||||
KAction *actCloseTask;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,8 @@
|
||||
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
|
||||
<kpartgui name="kompose" version="1">
|
||||
<MenuBar>
|
||||
<Menu name="custom"><text>C&ustom</text>
|
||||
<Action name="custom_action" />
|
||||
</Menu>
|
||||
</MenuBar>
|
||||
</kpartgui>
|
@ -0,0 +1,258 @@
|
||||
//
|
||||
// C++ Implementation: %{MODULE}
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "komposeviewmanager.h"
|
||||
|
||||
#include "komposetaskmanager.h"
|
||||
#include "komposeglobal.h"
|
||||
#include "komposesettings.h"
|
||||
#include "komposesystray.h"
|
||||
|
||||
#include <qtimer.h>
|
||||
#include <qcursor.h>
|
||||
#include <qapplication.h>
|
||||
#include <qptrlist.h>
|
||||
#include <qwidgetlist.h>
|
||||
#include <qdesktopwidget.h>
|
||||
|
||||
#include <kwin.h>
|
||||
#include <kapplication.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
|
||||
static KomposeViewManager* viewManagerInstance = 0;
|
||||
|
||||
/**
|
||||
* Viewmanager is a singleton
|
||||
*/
|
||||
KomposeViewManager* KomposeViewManager::instance()
|
||||
{
|
||||
if ( !viewManagerInstance )
|
||||
{
|
||||
kdDebug() << "KomposeViewManager::instance() - Creating Singleton instance" << endl;
|
||||
viewManagerInstance = new KomposeViewManager();
|
||||
}
|
||||
return viewManagerInstance;
|
||||
}
|
||||
|
||||
KomposeViewManager::KomposeViewManager():
|
||||
DCOPObject( "KomposeDcopIface" ),
|
||||
QObject(),
|
||||
viewWidget(),
|
||||
activeView(0),
|
||||
blockScreenshots(0)
|
||||
{
|
||||
viewManagerInstance = this;
|
||||
|
||||
// Setup cursorupdate timer to check for mouse moves into corner
|
||||
cursorUpdateTimer = new QTimer();
|
||||
slotStartCursorUpdateTimer();
|
||||
|
||||
// dirty hack. see uglyQtHackInitFunction()
|
||||
QTimer::singleShot( 500, this, SLOT( uglyQtHackInitFunction() ) );
|
||||
}
|
||||
|
||||
|
||||
KomposeViewManager::~KomposeViewManager()
|
||||
{
|
||||
delete cursorUpdateTimer;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This is a hack that should be called by a timer as this connect won't work in the constructor
|
||||
*/
|
||||
void KomposeViewManager::uglyQtHackInitFunction()
|
||||
{
|
||||
connect( KomposeSettings::instance(), SIGNAL( settingsChanged() ), SLOT( slotStartCursorUpdateTimer() ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the corner check timer which polls QCursor::pos() every second
|
||||
@see checkCursorPos()
|
||||
*/
|
||||
void KomposeViewManager::slotStartCursorUpdateTimer()
|
||||
{
|
||||
disconnect( cursorUpdateTimer, SIGNAL( timeout() ), this, SLOT( checkCursorPos() ) );
|
||||
|
||||
if ( KomposeSettings::instance()->getActivateOnBottomLeftCorner() ||
|
||||
KomposeSettings::instance()->getActivateOnBottomRightCorner() ||
|
||||
KomposeSettings::instance()->getActivateOnTopLeftCorner() ||
|
||||
KomposeSettings::instance()->getActivateOnTopRightCorner() ||
|
||||
KomposeSettings::instance()->getActivateOnTopEdge() ||
|
||||
KomposeSettings::instance()->getActivateOnBottomEdge() ||
|
||||
KomposeSettings::instance()->getActivateOnLeftEdge() ||
|
||||
KomposeSettings::instance()->getActivateOnRightEdge() )
|
||||
{
|
||||
kdDebug() << "KomposeViewManager::slotStartCursorUpdateTimer() - QCursor::pos() checks enabled" << endl;
|
||||
QRect deskRect = QApplication::desktop()->screenGeometry();
|
||||
|
||||
topLeftCorner = deskRect.topLeft();
|
||||
topRightCorner = deskRect.topRight();
|
||||
bottomLeftCorner = deskRect.bottomLeft();
|
||||
bottomRightCorner = deskRect.bottomRight();
|
||||
|
||||
connect( cursorUpdateTimer, SIGNAL( timeout() ), SLOT( checkCursorPos() ) );
|
||||
cursorUpdateTimer->start( 200, false ); // TODO: Find out why even an interval of 1ms doesn't hit performance!
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks if cursor hovered over a corner that activates Kompose
|
||||
*/
|
||||
void KomposeViewManager::checkCursorPos()
|
||||
{
|
||||
if (
|
||||
( KomposeSettings::instance()->getActivateOnTopLeftCorner() &&
|
||||
!activeView && QCursor::pos() == topLeftCorner ) ||
|
||||
( KomposeSettings::instance()->getActivateOnTopRightCorner() &&
|
||||
!activeView && QCursor::pos() == topRightCorner ) ||
|
||||
( KomposeSettings::instance()->getActivateOnBottomLeftCorner() &&
|
||||
!activeView && QCursor::pos() == bottomLeftCorner ) ||
|
||||
( KomposeSettings::instance()->getActivateOnBottomRightCorner() &&
|
||||
!activeView && QCursor::pos() == bottomRightCorner ) ||
|
||||
( KomposeSettings::instance()->getActivateOnTopEdge() &&
|
||||
!activeView && QCursor::pos().y() == topLeftCorner.y() ) ||
|
||||
( KomposeSettings::instance()->getActivateOnBottomEdge() &&
|
||||
!activeView && QCursor::pos().y() == bottomLeftCorner.y() ) ||
|
||||
( KomposeSettings::instance()->getActivateOnLeftEdge() &&
|
||||
!activeView && QCursor::pos().x() == topLeftCorner.x() ) ||
|
||||
( KomposeSettings::instance()->getActivateOnRightEdge() &&
|
||||
!activeView && QCursor::pos().x() == topRightCorner.x() )
|
||||
)
|
||||
{
|
||||
//cursorUpdateTimer->stop();
|
||||
QTimer::singleShot( KomposeSettings::instance()->getAutoLockDelay(), this, SLOT( reCheckCursorPos() ) );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called after the cursor was in a hotspot to check if it's still there
|
||||
*/
|
||||
void KomposeViewManager::reCheckCursorPos()
|
||||
{
|
||||
if (
|
||||
( KomposeSettings::instance()->getActivateOnTopLeftCorner() &&
|
||||
!activeView && QCursor::pos() == topLeftCorner ) ||
|
||||
( KomposeSettings::instance()->getActivateOnTopRightCorner() &&
|
||||
!activeView && QCursor::pos() == topRightCorner ) ||
|
||||
( KomposeSettings::instance()->getActivateOnBottomLeftCorner() &&
|
||||
!activeView && QCursor::pos() == bottomLeftCorner ) ||
|
||||
( KomposeSettings::instance()->getActivateOnBottomRightCorner() &&
|
||||
!activeView && QCursor::pos() == bottomRightCorner ) ||
|
||||
( KomposeSettings::instance()->getActivateOnTopEdge() &&
|
||||
!activeView && QCursor::pos().y() == topLeftCorner.y() ) ||
|
||||
( KomposeSettings::instance()->getActivateOnBottomEdge() &&
|
||||
!activeView && QCursor::pos().y() == bottomLeftCorner.y() ) ||
|
||||
( KomposeSettings::instance()->getActivateOnLeftEdge() &&
|
||||
!activeView && QCursor::pos().x() == topLeftCorner.x() ) ||
|
||||
( KomposeSettings::instance()->getActivateOnRightEdge() &&
|
||||
!activeView && QCursor::pos().x() == topRightCorner.x() )
|
||||
)
|
||||
{
|
||||
cursorUpdateTimer->stop();
|
||||
createView();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void KomposeViewManager::createView( int type )
|
||||
{
|
||||
if (KomposeSettings::instance()->hasDialogOpen() ||
|
||||
KomposeGlobal::instance()->hasAboutDialogOpen())
|
||||
{
|
||||
kdDebug() << "KomposeViewManager::createView() - Another Kompose Dialog is open... close it first" << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
if (type == -1)
|
||||
type = KomposeSettings::instance()->getDefaultView();
|
||||
|
||||
kdDebug() << "KomposeViewManager::createView( type " << type << " )" << endl;
|
||||
|
||||
if ( !activeView )
|
||||
{
|
||||
// Remember current desktop
|
||||
deskBeforeSnaps = KWin::currentDesktop();
|
||||
kdDebug() << "KomposeViewManager::createView() - Remembering desktop " << deskBeforeSnaps << endl;
|
||||
// Update screenshot of the current window to be more up2date
|
||||
// KomposeTaskManager::instance()->simulatePasvScreenshotEvent();
|
||||
// Update all other
|
||||
blockScreenshots = true;
|
||||
if ( type == KOMPOSEDISPLAY_CURRENTDESK )
|
||||
KomposeTaskManager::instance()->slotUpdateScreenshots( false );
|
||||
else
|
||||
KomposeTaskManager::instance()->slotUpdateScreenshots();
|
||||
blockScreenshots = false;
|
||||
}
|
||||
|
||||
if ( !activeView )
|
||||
viewWidget = new KomposeFullscreenWidget( type );
|
||||
else
|
||||
viewWidget->setType( type );
|
||||
|
||||
viewWidget->show();
|
||||
KWin::forceActiveWindow( viewWidget->winId() );
|
||||
|
||||
activeView = true;
|
||||
}
|
||||
|
||||
|
||||
void KomposeViewManager::closeCurrentView()
|
||||
{
|
||||
if ( !activeView )
|
||||
return;
|
||||
|
||||
blockScreenshots = true;
|
||||
activeView = false;
|
||||
|
||||
//viewWidget->setUpdatesEnabled( false );
|
||||
//viewWidget->hide();
|
||||
viewWidget->close();
|
||||
viewWidget->deleteLater();
|
||||
//viewWidget = 0;
|
||||
|
||||
emit viewClosed();
|
||||
|
||||
if ( KomposeGlobal::instance()->getSingleShot() )
|
||||
kapp->quit();
|
||||
|
||||
// Reset old Desktop
|
||||
KWin::setCurrentDesktop( deskBeforeSnaps );
|
||||
|
||||
// A short delay until we allow screenshots again (would cause overlapping else
|
||||
QTimer::singleShot( 400, this, SLOT( toggleBlockScreenshots() ) );
|
||||
|
||||
// Restart Timer for corner checks
|
||||
slotStartCursorUpdateTimer();
|
||||
}
|
||||
|
||||
void KomposeViewManager::toggleBlockScreenshots()
|
||||
{
|
||||
blockScreenshots = !blockScreenshots;
|
||||
}
|
||||
|
||||
void KomposeViewManager::setCurrentDesktop( int desknum )
|
||||
{
|
||||
closeCurrentView();
|
||||
KWin::setCurrentDesktop(desknum+1);
|
||||
}
|
||||
|
||||
void KomposeViewManager::activateTask( KomposeTask *task )
|
||||
{
|
||||
closeCurrentView();
|
||||
task->activate();
|
||||
}
|
||||
|
||||
|
||||
|
||||
#include "komposeviewmanager.moc"
|
@ -0,0 +1,79 @@
|
||||
//
|
||||
// C++ Interface: %{MODULE}
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#ifndef KOMPOSEVIEWMANAGER_H
|
||||
#define KOMPOSEVIEWMANAGER_H
|
||||
|
||||
#include <qpoint.h>
|
||||
#include <dcopobject.h>
|
||||
|
||||
#include "komposedcopiface.h"
|
||||
#include "komposefullscreenwidget.h"
|
||||
|
||||
class KomposeTask;
|
||||
class QTimer;
|
||||
|
||||
/**
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeViewManager : public QObject, virtual public KomposeDcopIface
|
||||
{
|
||||
Q_OBJECT
|
||||
protected:
|
||||
KomposeViewManager();
|
||||
~KomposeViewManager();
|
||||
|
||||
public:
|
||||
static KomposeViewManager *instance();
|
||||
|
||||
KomposeFullscreenWidget* getViewWidget() { return viewWidget; }
|
||||
|
||||
public slots:
|
||||
void createView( int type = -1 ); // -1 means the user's default
|
||||
void createVirtualDesktopView() { createView( KOMPOSEDISPLAY_VIRTUALDESKS ); }
|
||||
void createCurrentDesktopView() { createView( KOMPOSEDISPLAY_CURRENTDESK ); }
|
||||
void createWorldView() { createView( KOMPOSEDISPLAY_WORLD ); }
|
||||
void createDefaultView() { createView(); }
|
||||
|
||||
void closeCurrentView();
|
||||
bool hasActiveView() { return activeView; }
|
||||
bool getBlockScreenshots() { return blockScreenshots; }
|
||||
int getDesktopBeforeSnaps() { return deskBeforeSnaps - 1; }
|
||||
|
||||
void setCurrentDesktop( int desknum );
|
||||
void activateTask( KomposeTask* task );
|
||||
|
||||
protected slots:
|
||||
void toggleBlockScreenshots();
|
||||
void checkCursorPos();
|
||||
void reCheckCursorPos();
|
||||
|
||||
void uglyQtHackInitFunction();
|
||||
void slotStartCursorUpdateTimer();
|
||||
|
||||
signals:
|
||||
void viewClosed();
|
||||
|
||||
private:
|
||||
KomposeFullscreenWidget *viewWidget; // the widget where all action takes place
|
||||
bool activeView; // used to check if a view is active
|
||||
bool blockScreenshots; // no screenshots when true
|
||||
int deskBeforeSnaps; // the virtual desk we were on befor screenshots were taken
|
||||
|
||||
QTimer *cursorUpdateTimer;
|
||||
// The 4 corners
|
||||
QPoint topLeftCorner;
|
||||
QPoint topRightCorner;
|
||||
QPoint bottomLeftCorner;
|
||||
QPoint bottomRightCorner;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,94 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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 "komposewidget.h"
|
||||
#include "komposelayout.h"
|
||||
|
||||
#include <qtimer.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
/*
|
||||
* The constructor accepts a custom layout, if none is specified a defaultlayout is used
|
||||
*/
|
||||
KomposeWidget::KomposeWidget(QWidget *parent, KomposeLayout *l, const char *name)
|
||||
: QWidget(parent, name)
|
||||
{
|
||||
if (!l)
|
||||
layout = new KomposeLayout( this );
|
||||
else
|
||||
layout = l;
|
||||
}
|
||||
|
||||
|
||||
KomposeWidget::~KomposeWidget()
|
||||
{
|
||||
delete layout;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Whenever a child is added to the widget it's also added to the layout
|
||||
*/
|
||||
void KomposeWidget::childEvent ( QChildEvent * ce)
|
||||
{
|
||||
KomposeWidget* kwChild = 0;
|
||||
kwChild = ::qt_cast<KomposeWidget*>(ce->child());
|
||||
if ( !kwChild )
|
||||
return;
|
||||
|
||||
if ( ce->inserted() )
|
||||
{
|
||||
kdDebug() << "KomposeWidget::childEvent : Added widget " << ce->child()->className() << " to " << className() << endl;
|
||||
layout->add( kwChild );
|
||||
}
|
||||
else if ( ce->removed() )
|
||||
{
|
||||
kdDebug() << "KomposeWidget::childEvent : Removed widget " << ce->child()->className() << " from " << className() << endl;
|
||||
layout->remove( kwChild );
|
||||
}
|
||||
layout->arrangeLayout();
|
||||
}
|
||||
|
||||
/*
|
||||
* Whenever a resize occurs rearrange the layout
|
||||
*/
|
||||
void KomposeWidget::resizeEvent ( QResizeEvent * e )
|
||||
{
|
||||
kdDebug() << "KomposeWidget(" << className() << ")::resizeEvent - Size:" << e->size().width() << "x"<< e->size().height() << endl;
|
||||
layout->arrangeLayout();
|
||||
}
|
||||
|
||||
|
||||
KomposeWidget* KomposeWidget::getParentWidget() const
|
||||
{
|
||||
if ( QWidget::parent()->inherits("KomposeWidget") )
|
||||
return (KomposeWidget*)QWidget::parent();
|
||||
else
|
||||
{
|
||||
kdDebug() << "KomposeWidget::getParentWidget() - QWidget::parent() does not inherit (KomposeWidget)" << endl;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
int KomposeWidget::getNumofChilds()
|
||||
{
|
||||
return layout->getNumofChilds();
|
||||
}
|
||||
|
||||
#include "komposewidget.moc"
|
@ -0,0 +1,56 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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. *
|
||||
***************************************************************************/
|
||||
#ifndef KOMPOSEWIDGET_H
|
||||
#define KOMPOSEWIDGET_H
|
||||
|
||||
#include <qwidget.h>
|
||||
|
||||
class KomposeLayout;
|
||||
|
||||
/**
|
||||
This base class for all Kompose Widgets glues the Layout and the widget together:
|
||||
@author Hans Oischinger
|
||||
*/
|
||||
class KomposeWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KomposeWidget( QWidget *parent = 0, KomposeLayout *l = 0, const char *name = 0);
|
||||
|
||||
virtual ~KomposeWidget();
|
||||
|
||||
// KomposeWidgetInterface:
|
||||
virtual KomposeWidget* getParentWidget() const;
|
||||
virtual int getHeightForWidth( int w ) const = 0;
|
||||
virtual int getWidthForHeight( int h ) const = 0;
|
||||
virtual double getAspectRatio() = 0;
|
||||
|
||||
KomposeLayout* getLayout() { return layout; }
|
||||
int getNumofChilds();
|
||||
|
||||
protected:
|
||||
void childEvent( QChildEvent * ce);
|
||||
void resizeEvent ( QResizeEvent * e );
|
||||
|
||||
protected:
|
||||
KomposeLayout *layout;
|
||||
};
|
||||
|
||||
#endif
|
@ -0,0 +1,94 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2004 by Hans Oischinger *
|
||||
* hans.oischinger@kde-mail.net *
|
||||
* *
|
||||
* 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 "kompose.h"
|
||||
#include "komposeglobal.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <kaboutdata.h>
|
||||
#include <kcmdlineargs.h>
|
||||
#include <klocale.h>
|
||||
|
||||
|
||||
static const char description[] =
|
||||
I18N_NOOP("A fullscreen task manager for KDE");
|
||||
|
||||
static const char version[] = "0.5.3";
|
||||
|
||||
static KCmdLineOptions options[] =
|
||||
{
|
||||
{ "nosystray", I18N_NOOP( "Do not show the systray icon" ), 0 },
|
||||
{ "singleshot", I18N_NOOP( "Display the default view and exit (non daemon mode)" ), 0 },
|
||||
KCmdLineLastOption
|
||||
};
|
||||
|
||||
void myMessageOutput( QtMsgType type, const char *msg )
|
||||
{
|
||||
return;
|
||||
switch ( type )
|
||||
{
|
||||
case QtDebugMsg:
|
||||
fprintf( stderr, "Debug: %s\n", msg );
|
||||
break;
|
||||
case QtWarningMsg:
|
||||
fprintf( stderr, "Warning: %s\n", msg );
|
||||
break;
|
||||
case QtFatalMsg:
|
||||
fprintf( stderr, "Fatal: %s\n", msg );
|
||||
abort(); // deliberately core dump
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
// qInstallMsgHandler( myMessageOutput );
|
||||
|
||||
KAboutData about("kompose", I18N_NOOP("Kompose"), version, description,
|
||||
KAboutData::License_GPL, "(C) 2005 Hans Oischinger", "", "http://developer.berlios.de/projects/kompose", "hans.oischinger@kde-mail.net");
|
||||
about.addAuthor( "Hans Oischinger", 0, "hans.oischinger@kde-mail.net" );
|
||||
KCmdLineArgs::init(argc, argv, &about);
|
||||
KCmdLineArgs::addCmdLineOptions( options );
|
||||
|
||||
Kompose *app = new Kompose();
|
||||
|
||||
// no session.. just start up normally
|
||||
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
|
||||
|
||||
if ( !args->isSet("systray") )
|
||||
{
|
||||
KomposeGlobal::instance()->setHideSystray(true);
|
||||
}
|
||||
if ( args->isSet("singleshot") )
|
||||
{
|
||||
KomposeGlobal::instance()->setHideSystray(true);
|
||||
KomposeGlobal::instance()->setSingleShot(true);
|
||||
}
|
||||
|
||||
KomposeGlobal::instance()->initGui();
|
||||
|
||||
//app.setMainWidget( mainWin );
|
||||
|
||||
args->clear();
|
||||
|
||||
// mainWin has WDestructiveClose flag by default, so it will delete itself.
|
||||
return app->exec();
|
||||
}
|
||||
|