diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-03 11:05:10 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-03 11:05:10 -0600 |
commit | f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b (patch) | |
tree | 1f78ef53b206c6b4e4efc88c4849aa9f686a094d /tde-i18n-ru/docs/tdebase/ksplashml | |
parent | 85ca18776aa487b06b9d5ab7459b8f837ba637f3 (diff) | |
download | tde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.tar.gz tde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.zip |
Second part of prior commit
Diffstat (limited to 'tde-i18n-ru/docs/tdebase/ksplashml')
-rw-r--r-- | tde-i18n-ru/docs/tdebase/ksplashml/Makefile.am | 4 | ||||
-rw-r--r-- | tde-i18n-ru/docs/tdebase/ksplashml/Makefile.in | 635 | ||||
-rw-r--r-- | tde-i18n-ru/docs/tdebase/ksplashml/index.cache.bz2 | bin | 0 -> 15347 bytes | |||
-rw-r--r-- | tde-i18n-ru/docs/tdebase/ksplashml/index.docbook | 1629 |
4 files changed, 2268 insertions, 0 deletions
diff --git a/tde-i18n-ru/docs/tdebase/ksplashml/Makefile.am b/tde-i18n-ru/docs/tdebase/ksplashml/Makefile.am new file mode 100644 index 00000000000..5cefd51ee41 --- /dev/null +++ b/tde-i18n-ru/docs/tdebase/ksplashml/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = ru +SUBDIRS = $(AUTODIRS) +KDE_DOCS = ksplashml +KDE_MANS = AUTO diff --git a/tde-i18n-ru/docs/tdebase/ksplashml/Makefile.in b/tde-i18n-ru/docs/tdebase/ksplashml/Makefile.in new file mode 100644 index 00000000000..db77438212c --- /dev/null +++ b/tde-i18n-ru/docs/tdebase/ksplashml/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +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 = : +subdir = docs/tdebase/ksplashml +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)/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-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +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_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +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@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +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_kcfgdir = @kde_kcfgdir@ +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_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@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = ru +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = ksplashml +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am 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 docs/tdebase/ksplashml/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdebase/ksplashml/Makefile +#>+ 12 + @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 docs/tdebase/ksplashml/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdebase/ksplashml/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdebase/ksplashml/Makefile.in +.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 + +# 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" + +$(RECURSIVE_CLEAN_TARGETS): + @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; nonemtpy = 1; } \ + END { if (nonempty) { 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; nonempty = 1; } \ + END { if (nonempty) { 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=; \ + 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; nonempty = 1; } \ + END { if (nonempty) { 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) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + 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" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + 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 +#>+ 1 +uninstall: uninstall-docs uninstall-nls 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 +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +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 + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-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: + +#>+ 2 +KDE_DIST=index.docbook Makefile.in Makefile.am index.cache.bz2 + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) index.docbook + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/ksplashml + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/ksplashml/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/ksplashml/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/ksplashml/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/ksplashml/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/ksplashml/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/ksplashml/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/ksplashml + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/ksplashml + @for base in index.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/ksplashml/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/ksplashml/$$base ;\ + done + +uninstall-nls: + for base in index.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/ksplashml/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in index.docbook ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @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 docs/tdebase/ksplashml/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdebase/ksplashml/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdebase/ksplashml/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-ru/docs/tdebase/ksplashml/index.cache.bz2 b/tde-i18n-ru/docs/tdebase/ksplashml/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..3d3ba3cc420 --- /dev/null +++ b/tde-i18n-ru/docs/tdebase/ksplashml/index.cache.bz2 diff --git a/tde-i18n-ru/docs/tdebase/ksplashml/index.docbook b/tde-i18n-ru/docs/tdebase/ksplashml/index.docbook new file mode 100644 index 00000000000..1cfd1d526a5 --- /dev/null +++ b/tde-i18n-ru/docs/tdebase/ksplashml/index.docbook @@ -0,0 +1,1629 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" +"dtd/kdex.dtd" [ + <!ENTITY kappname "&ksplash;"> + <!ENTITY package "tdebase"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % Russian "INCLUDE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title +>Руководство пользователя &ksplash;</title> + +<authorgroup> +<author +>&Teemu.Rytilahti; &Teemu.Rytilahti.mail; </author> + +<othercredit role="developer" +>&Brian.C.Ledbetter; &Brian.C.Ledbetter.mail; </othercredit> + +<othercredit role="developer" +>&Ravikiran.Rajagopal; &Ravikiran.Rajagopal.mail; </othercredit> + +<othercredit role="translator" +><firstname +>Иван</firstname +><surname +>Кашуков</surname +><affiliation +><address +><email +>dolphin210@yandex.ru</email +></address +></affiliation +><contrib +>Перевод на русский язык</contrib +></othercredit +><othercredit role="translator" +><firstname +>Николай</firstname +><surname +>Шафоростов</surname +><affiliation +><address +><email +>shafff@ukr.net</email +></address +></affiliation +><contrib +>Обновление перевода</contrib +></othercredit +> <othercredit role="translator" +><firstname +>Виктор</firstname +><surname +>Ерёмин </surname +><affiliation +><address +><email +>ErV2005@rambler.ru</email +></address +></affiliation +><contrib +>Перевод на русский язык</contrib +></othercredit +> + +</authorgroup> + +<copyright> +<year +>2003</year> +<holder +>Teemu Rytilahti</holder> +</copyright> +<copyright> +<year +>2003-04</year> +<holder +>Ravikiran Rajagopal</holder> +</copyright> +<legalnotice +>&FDLNotice;</legalnotice> + +<date +>2003-01-10</date> +<releaseinfo +>1.01.00</releaseinfo> + +<abstract> +<para +>&ksplash; — симпатичный экран, показывающий процесс загрузки среды KDE.</para> +</abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>tdebase</keyword> +<keyword +>ksplash</keyword> +<keyword +>ksplashml</keyword> +<keyword +>заставка</keyword> +<keyword +>украшение</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title +>Введение</title> + +<para +>&ksplash; — симпатичный экран, показывающий процесс загрузки KDE. Вопросы и пожелания отправляйте в списки рассылки &kde;. Отличительные особенности &ksplash;: </para> +<simplelist> +<member +>Возможность применения тем</member> +<member +>Высокая гибкость в настройке обеспечивается использованием подключаемых модулей</member> +<member +>Программа может быть использована любым приложением, которое работает с DCOP</member> +</simplelist> + +<para +>Это руководство объясняет, как создавать темы для использования с уже доступными подключаемыми модулями. Если ни один из доступных модулей не удовлетворяет вашему вкусу, вы можете научиться полностью настраивать внешний вид &ksplash;, создавая подключаемые модули на C++. </para> +</chapter> + +<chapter id="using-themes"> +<title +>Использование тем</title> + +<para +>Чтобы использовать темы с <ulink url="http://www.kde-look.org" +>KDE-Look</ulink +>, скопируйте их в <filename +>~/.kde/apps/ksplash/Themes/</filename +> (для одного пользователя) или в <filename +>$<envar +>KDEDIR</envar +>/share/apps/ksplash/Themes/</filename +> (чтобы сделать их доступными для всех пользователей вашей системы).</para> + +<para +>Чтобы сделать это автоматически, используйте модуль <guilabel +>Заставка</guilabel +> раздела <guilabel +>Внешний вид и темы</guilabel +> Центра управления &kde;.</para> + +<sect1 id="using-kcontrol-module"> +<title +>Модуль Центра управления</title> + +<para +>Этот модуль позволяет устанавливать, проверять и удалять темы &ksplash;.</para> + +<para +>Внизу расположен список доступных тем &ksplash;. При выборе одной из последних, её предварительный просмотр появится в соответствующей части окна. Чтобы активировать тему, нажмите <guibutton +>OK</guibutton +> или <guibutton +>Применить</guibutton +>.</para> + +<para +>Чтобы установить новые модули, нажмите <guibutton +>Добавить...</guibutton +>. Не нужно распаковывать файлы тем, они могут обрабатываться и в сжатом виде.</para> + +<para +>Для просмотра анимации темы, нажмите кнопку<guibutton +>Тест</guibutton +>.</para> + +<para +>Чтобы удалить тему, воспользуйтесь кнопкой <guibutton +>Удалить</guibutton +>. Если тема установлена для всех пользователей, то удалять её нужно с правами администратора. Также, мы не рекомендуем удалять тему «<guilabel +>По умолчанию</guilabel +>».</para> + +</sect1> + +</chapter> + +<chapter id="themes"> +<title +>Как создавать темы для &ksplash;</title> +<sect1 id="themes-general"> +<title +>Основные положения</title> +<para +>Создавать свои собственные темы для &ksplash; достаточно легко. Когда вы закончили свою тему, вы можете отправить её на <ulink url="http://www.kde-look.org" +>KDE-Look</ulink +>, чтобы её могли использовать другие.</para> + +<sect2 id="theme-syntax"> +<title +>Определение своей темы</title> + +<para +>Давайте создадим тему под названием <literal +>MyCoolTheme</literal +>. Чтобы тема была найдена &ksplash;, следует поместить её в папку <filename class="directory" +>MyCoolTheme</filename +> в папке <filename class="directory" +>~/.kde/apps/ksplash/Themes/</filename +>. В ней должен содержаться файл <filename +>Theme.rc</filename +>, содержащий настройки темы. Вы можете установить множество особенностей для темы, изменить движок подключаемых модулей и т. д. Не обязательно использовать все доступные параметры, обычно используются только некоторые. Синтаксис записей файла <filename +>Theme.rc</filename +>: <literal +>[параметр] = [значение]</literal +>. Параметры описаны в следующих разделах.</para> + +<example> +<title +>Простой файл <filename +>Theme.rc</filename +></title> +<programlisting +>[KSplash Theme: MyCoolTheme] +Name = MyCoolTheme +Description = Симпатичная тема, использующая движок XpLike +Version = 1.0 +Author = Имя автора <realmail@mail.com> +## Используйте движок XpLike для этой темы. +Engine = XpLike +Show Icon = false +Welcome Text = Загрузка KDE +</programlisting> +</example> + +<para +>После того как вы задали имя, описание и автора темы, вам следует выбрать движок темы (подключаемый модуль). Затем вы сможете настроить разнообразные характеристики движка темы, устанавливая пары параметр=значение, как в вышеприведённом файле.</para> + +<important> +<para +>Важно, чтобы имя папки, в которой хранятся файлы темы (<filename class="directory" +>~/.kde/apps/ksplash/Themes/MyCoolTheme</filename +> в данном примере) и идентификатор (<literal +>[KSplash Theme: MyCoolTheme] </literal +> в данном примере) в <filename +>Theme.rc</filename +> совпадали. В противном случае, &ksplash; не распознает тему.</para> +</important> + +</sect2> + +<sect2 id="theme-files"> +<title +>Файлы фона</title> + +<para +>При запуске &ksplash; пытается найти файл фона, соответствующий текущему разрешению экрана (если файл используется движком темы). Формат названия файла фона: <filename +>Background-<replaceable +>WWWxHHH</replaceable +>.png</filename +>, где WWW-ширина, а HHH-высота изображения.</para> + +<para +>Например, вам надо использовать файл <filename +>Background-1024x768</filename +>. Если файл, соответствующий текущему разрешению экрана, не найден, программа пытается изменить размер файла <filename +>Background.png</filename +> (или другого, заданного в <filename +>Theme.rc</filename +>) так, чтобы он соответствовал разрешению. Изменение размера <quote +>на лету</quote +> занимает некоторое время, так что вам следует создать файлы как минимум для следующих разрешений экрана: 1280x1024, 1024x768 и 800x600.</para> +</sect2> +</sect1> + +<sect1 id="theme-engines"> +<title +>Параметры движков тем</title> + +<sect2 id="default-themes"> +<title +>Тема, используемая по умолчанию</title> +<table> +<title +>Настройка темы по умолчанию</title> +<tgroup cols="3"> +<tbody> +<row> +<entry +>Параметр</entry> +<entry +>Значение</entry> +<entry +>Описание</entry> +</row> +<!-- Statusbar --> +<row> +<entry +>Always Show Progress</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будет ли показан прогресс загрузки. Значение по умолчанию — true.</entry> +</row> +<row> +<entry +>Label Foreground</entry> +<entry +>[цвет]</entry> +<entry +>Цвет текста индикатора состояния. Значение по умолчанию — white (белый, #FFFFFF).</entry> +</row> +<!-- Misc. things --> +<row> +<entry +>Icons Flashing</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будут ли мерцать значки. По умолчанию — true (да).</entry> +</row> +</tbody> +</tgroup> +</table> +</sect2> + +<sect2 id="standard-themes"> +<title +>Стандартная тема</title> +<table> +<title +>Параметры стандартной темы</title> +<tgroup cols="3"> +<tbody> +<row> +<entry +>Параметр</entry> +<entry +>Значение</entry> +<entry +>Описание</entry> +</row> +<!-- Statusbar --> +<row> +<entry +>Statusbar Position</entry> +<entry +>[top/bottom]</entry> +<entry +>Определяет расположение индикатора состояния на экране. Значение по умолчанию — bottom (внизу).</entry> +</row> +<row> +<entry +>Statusbar Visible</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будет ли индикатор состояния видимым. Значение по умолчанию — true (да).</entry> +</row> +<row> +<entry +>Progress Visible</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будет ли показан прогресс загрузки. Значение по умолчанию — true.</entry> +</row> +<!-- Fonts --> +<row> +<entry +>Statusbar Font</entry> +<entry +>[шрифт]</entry> +<entry +>Шрифт, используемый в индикаторе состояния. Значение по умолчанию — Helvetica.</entry> +</row> +<row> +<entry +>Statusbar Font Size</entry> +<entry +>[размер]</entry> +<entry +>Размер шрифта индикатора состояния. Значение по умолчанию — 16 пт.</entry> +</row> +<row> +<entry +>Statusbar Font Bold</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будет ли шрифт индикатора состояния полужирным. Значение по умолчанию — true (да).</entry> +</row> +<row> +<entry +>Statusbar Font Italic</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будет ли шрифт индикатора состояния курсивным. Значение по умолчанию — false (нет).</entry> +</row> +<!-- Misc. things --> +<row> +<entry +>Statusbar Foreground</entry> +<entry +>[цвет]</entry> +<entry +>Цвет переднего плана индикатора состояния. Значение по умолчанию — white (белый).</entry> +</row> +<row> +<entry +>Statusbar Background</entry> +<entry +>[цвет]</entry> +<entry +>Цвет фона индикатора состояния. Значение по умолчанию — black (чёрный).</entry> +</row> +<row> +<entry +>Statusbar Icon</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будет ли значок у индикатора состояния.</entry> +</row> +<row> +<entry +>Icons Visible</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будут ли значки видимыми. Значение по умолчанию — true (да).</entry> +</row> +<row> +<entry +>Icons Jumping</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будут ли прыгать значки. Значение по умолчанию — true (да).</entry> +</row> +<row> +<entry +>Icon Position</entry> +<entry +>[0-3, 10-13]</entry> +<entry +>Расположение значков. Значение по умолчанию — вверху слева.</entry> +</row> +<row> +<entry +>Splash Screen</entry> +<entry +>[название]</entry> +<entry +>Название заставки.</entry> +</row> +</tbody> +</tgroup> +</table> +</sect2> + +<sect2 id="redmond-themes"> +<title +>Тема Redmond</title> +<table> +<title +>Параметры темы Redmond</title> +<tgroup cols="3"> +<tbody> +<row> +<entry +>Параметр</entry> +<entry +>Значение</entry> +<entry +>Описание</entry> +</row> +<!-- Main elements --> +<row> +<entry +>Background Image</entry> +<entry +>[имя_файла]</entry> +<entry +>Определяемое пользователем фоновое изображение.</entry> +</row> +<row> +<entry +>User Icon</entry> +<entry +>[имя_значка]</entry> +<entry +>Имя значка пользователя. Значение по умолчанию — <constant +>go</constant +>.</entry> +</row> +<row> +<entry +>Welcome Text</entry> +<entry +>[текст]</entry> +<entry +>Текст, показываемый на экране. Значение по умолчанию — «Добро пожаловать».</entry> +</row> +<row> +<entry +>Username Text</entry> +<entry +>[текст]</entry> +<entry +>Текст, замещающий имя пользователя.</entry> +</row> +<!-- Positioning elements --> +<row> +<entry +>Welcome Text Position</entry> +<entry +>[x,y]</entry> +<entry +>Область экрана, в которой показывается текст приглашения (определяемый параметром «Welcome Text»).</entry> +</row> +<row> +<entry +>Username Text Position</entry> +<entry +>[x,y]</entry> +<entry +>Область экрана, в которой показывается имя пользователя.</entry> +</row> +<row> +<entry +>Action Text Position</entry> +<entry +>[x,y]</entry> +<entry +>Область экрана, в которой показывается текущее действие.</entry> +</row> +<row> +<entry +>Icon Position</entry> +<entry +>[x,y]</entry> +<entry +>Область экрана, в которой показывается значок пользователя.</entry> +</row> +<!-- Show to show.. --> +<row> +<entry +>Show Welcome Text</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будет ли показываться текст приглашения. Значение по умолчанию — true (да).</entry> +</row> +<row> +<entry +>Show Welcome Shadow</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будет ли показываться тень под текстом приглашения. Значение по умолчанию — true (да).</entry> +</row> +<row> +<entry +>Show Username</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будет ли показываться имя пользователя. Значение по умолчанию — true (да).</entry> +</row> +<row> +<entry +>Show Action</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будет ли показываться действие, выполняемое в данный момент. Значение по умолчанию — true (да).</entry> +</row> +<row> +<entry +>Show Icon</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будет ли показываться значок пользователя. Значение по умолчанию — true (да).</entry> +</row> +<row> +<entry +>Use KDM User Icon</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будет ли использоваться значок, соответствующий пользователю при входе в систему. Значение по умолчанию — true (да).</entry> +</row> +</tbody> +</tgroup> +</table> +</sect2> + +<sect2 id="macx-themes"> +<title +>Тема MacX</title> +<table> +<title +>Параметры темы MacX</title> +<tgroup cols="3"> +<tbody> +<row> +<entry +>Параметр</entry> +<entry +>Значение</entry> +<entry +>Описание</entry> +</row> +<row> +<entry +>Icon Size Minimum</entry> +<entry +>[размер]</entry> +<entry +>Минимальный размер значков. Значение по умолчанию — 16 пикселей.</entry> +</row> +<row> +<entry +>Icon Size Maximum</entry> +<entry +>[размер]</entry> +<entry +>Максимальный размер значков. Значение по умолчанию — 64 пикселя.</entry> +</row> +<row> +<entry +>Optimized Icon Rendering</entry> +<entry +>[true/false]</entry> +<entry +>Будет ли оптимизироваться отрисовка значков. Значение по умолчанию — true (да).</entry> +</row> +<row> +<entry +>Progress Bar Visible</entry> +<entry +>[true/false]</entry> +<entry +>По умолчанию — true (да).</entry> +</row> +<row> +<entry +>Progress Bar Position</entry> +<entry +>[top/bottom]</entry> +<entry +>Определяет расположение индикатора состояния (внизу или вверху). По умолчанию - bottom (внизу).</entry> +</row> +<row> +<entry +>Icons Jumping</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будут ли прыгать значки. Значение по умолчанию — false (нет).</entry> +</row> +</tbody> +</tgroup> +</table> +</sect2> + +<sect2 id="mac-classic-themes"> +<title +>Тема MacClassic</title> +<table> +<title +>Параметры темы MacClassic</title> +<tgroup cols="3"> +<tbody> +<row> +<entry +>Параметр</entry> +<entry +>Значение</entry> +<entry +>Описание</entry> +</row> +<row> +<entry +>Icon Position</entry> +<entry +>[0-3, 10-13]</entry> +<entry +>Расположение значков на экране. Значение по умолчанию — внизу слева.</entry> +</row> +<row> +<entry +>Icons Jumping</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будут ли прыгать значки. Значение по умолчанию — false (нет).</entry> +</row> +<row> +<entry +>Icons Visible</entry> +<entry +>[true/false]</entry> +<entry +>Определяет, будут ли значки видимыми. Значение по умолчанию — true (да).</entry> +</row> +<row> +<entry +>Splash Screen</entry> +<entry +>[название]</entry> +<entry +>Название заставки.</entry> +</row> +</tbody> +</tgroup> +</table> +</sect2> + +<sect2 id="themes-2k"> +<title +>Тема 2k</title> +<table> +<title +>Параметры темы 2k</title> +<tgroup cols="3"> +<tbody> +<row> +<entry +>Параметр</entry> +<entry +>Значение</entry> +<entry +>Описание</entry> +</row> +<row> +<entry +>Title Background Color</entry> +<entry +>[цвет]</entry> +<entry +>Фоновый цвет заголовка. Значение по умолчанию — dark blue (тёмно-синий).</entry> +</row> +<row> +<entry +>Title Foreground Color</entry> +<entry +>[цвет]</entry> +<entry +>Цвет переднего плана заголовка. Значение по умолчанию — white (белый).</entry> +</row> +<row> +<entry +>Status Text Color</entry> +<entry +>[цвет]</entry> +<entry +>Цвет текста состояния. По умолчанию соответствует фоновому тексту заголовка (определяемому параметром «Title Background Color»).</entry> +</row> +<row> +<entry +>Rotator Color 1</entry> +<entry +>[цвет]</entry> +<entry +>Определяет цвет индикатора 1. Значение по умолчанию — dark blue (тёмно-синий).</entry> +</row> +<row> +<entry +>Rotator Color 2</entry> +<entry +>[цвет]</entry> +<entry +>Определяет цвет индикатора 2. Значение по умолчанию — cyan (циан).</entry> +</row> +<row> +<entry +>Rotator Speed</entry> +<entry +>[значение]</entry> +<entry +>Определяет скорость индикатора. Значение по умолчанию — 30.</entry> +</row> +<row> +<entry +>Window Title</entry> +<entry +>[текст]</entry> +<entry +>Определяет текст заголовка окна.</entry> +</row> +<row> +<entry +>Logo File</entry> +<entry +>[имя_файла]</entry> +<entry +>Определяет используемый логотип.</entry> +</row> +</tbody> +</tgroup> +</table> +</sect2> +</sect1> +</chapter> + +<chapter id="from-other-applications"> +<title +>Использование &ksplash; в вашем собственном приложении</title> + +<para +>В этой главе описывается простой метод использования &ksplash; в качестве заставки для вашего приложения &kde;. Если вы не разрабатываете приложения для &kde;, вы можете опустить эту главу.</para> + +<sect1 id="basic-other-reqs"> +<title +>Основные требования</title> + +<para +>Ваше приложение &kde; должно работать с &DCOP;. &DCOP; — это технология &kde;, использующаяся для коммуникации между приложениями. Если вы используете <ulink url="http://developer.kde.org" +>стандартную структуру приложения &kde;</ulink +>, это обеспечивается автоматически. Чтобы получить информацию о &DCOP; и связанных технологиях &kde;, посетите <ulink url="http://developer.kde.org" +>сайт разработчиков &kde;</ulink +>.</para> +</sect1> + +<sect1 id="other-using"> +<title +>Запуск &ksplash;</title> + +<para +>До того, как ваше приложение начнёт вычисления, загрузку подключаемых модулей и т.д., запустите &ksplash;. Образец:</para> + +<programlisting +>DCOPClient *c = kapp->dcopClient(); +QString error; +QCString KSplashName; +int pid = 0; +QStringList args; +args << "--theme=MyCoolTheme" << "--managed"; +if (kapp->startServiceByDesktopName("ksplash", args, &error, +&KSplashName, &pid)) +{ + KMessageBox::sorry(0, error, "Невозможно запустить KSplash"); + //обработка ошибок. +} +</programlisting> + +<para +>Мы предполагаем, что запущено только одно окно &ksplash;. Другие случаи немного более сложны. Разъяснения смотрите в документации &DCOP;.</para> +</sect1> + +<sect1 id="show-messages"> +<title +>Показ сообщений</title> + +<para +>Перед показом сообщений вам необходимо установить число шагов. Например, процедура запуска &kde; включает 7 этапов.</para> + +<programlisting +>QByteArray data; + QDataStream arg(data,IO_WriteOnly); + arg << someNumber; + if (!(c->send(KSplashName, "KSplashIface", "setStartupItemCount(int)", +data)) + // Обработка ошибок. +</programlisting> + +<para +>Если вы хотите, чтобы сообщение связывалось с соответствующим значком или без него, используйте</para> + +<programlisting +>arg << QString("имя_значка") << QString("название_программы") << +QString("какое-то описание"); + if (!(c->send(KSplashName, "KSplashIface", +"programStarted(QString,QString,QString)", data)) + { + // Обработка ошибок. + } +</programlisting> + +<para +>Каждый раз, когда вы вызываете <constant +>programStarted</constant +>, шаги заканчиваются. Когда ваша программа закончила запуск, выполните следующие команды, чтобы убрать заставку:</para> + +<programlisting +>if (!(c->send(KSplashName, "KSplashIface", "startupComplete()", data)) + { + // Обработка ошибок. + } +</programlisting> + +<para +>Это всё, что вам необходимо, чтобы использовать все преимущества &ksplash;.</para> + +</sect1> +</chapter> + +<!-- FIXME: Better to leave this out until it's written, or the translators --> +<!-- will have to still translate it ... --> + +<chapter id="wrplugins"> +<title +>Создание новых подключаемых модулей &ksplash;</title> + +<para +>Создавать подключаемые модули &ksplash; нетрудно. В этой главе мы напишем простой модуль, который эмулирует экран загрузки одной очень известной операционной системы. Предполагается, что вы знакомы с основами языка C++ и хотя бы немного — с программированием для KDE/Qt.</para> + +<sect1 id="basic-requirements"> +<title +>Основные требования</title> +<para +>Мы создадим модуль с названием <literal +>2k</literal +>. Название используется во многих местах. Важно не исказить его, чтобы модуль был распознан &ksplash;. Модули &ksplash; являются динамически загружаемыми библиотеками со следующими объявлениями: </para> +<simplelist> +<member +>Библиотеку следует называть по образцу: <filename +>ksplash+название_темы_в_нижнем_регистре</filename +>. В нашем случае название будет <filename +>ksplash2k</filename +>.</member> +<member +>Тема должна иметь свой файл desktop, который следует назвать <filename +>ksplash+название_темы_в_нижнем_регистре.desktop</filename +>. В нашем случае — <filename +>ksplash2k.desktop</filename +>. </member> +<member +>Наконец, библиотека должна возвращать класс с названием <literal +>Theme+название_темы</literal +>, в нашем случае — <literal +>Theme2k</literal +>.</member> +</simplelist> +<para +>Не беспокойтесь, если вы не поняли всё вышесказанное. Далее мы рассмотрим каждый шаг в деталях. Важной деталью является то, что класс модуля вы должны взять из <literal +>ThemeEngine</literal +>. </para> +</sect1> +<sect1 id="skeleton"> +<title +>Создание основы</title> +<para +>При создании модуля мы будем использовать основу для приложения &kde;, которая обеспечит независимость от платформы во всех частях нашей работы. Убедитесь, что в вашей системе установлен пакет <filename +>tdesdk</filename +>. Выполните команду <literal +>kapptemplate</literal +>, чтобы создать приложение с названием "2k". Будет создана папка, содержащая основные файлы (такие как AUTHORS и т.п.). Нам нужна подпапка <filename class="directory" +>2k</filename +>. Удалите все файлы в ней, и основа готова. </para> +<para +>На следующем этапе вы должны создать файл <filename +>.desktop</filename +>, который, после установки, сообщит &ksplash;, что подключаемый модуль доступен. В соответствии с правилами наименования файлов, которые даны <link linkend="basic-requirements" +>в предыдущей секции</link +>, создайте файл <filename +>ksplash2k.desktop</filename +>. Он должен содержать следующие строки: </para> +<programlisting +><literal> +[Desktop Entry] +Encoding=UTF-8 +Type=Service +Comment=KSplash Plugin +Name=KSplash2k +ServiceTypes=KSplash/Plugin +X-KDE-Library=ksplash2k +X-KSplash-Default=true +X-KSplash-PluginName=2k +X-KSplash-ObjectName=Theme2k +</literal +> +</programlisting> +<para +>Параметры <literal +>Encoding</literal +>, <literal +>Type</literal +>, <literal +>Comment</literal +> и <literal +>ServiceTypes</literal +> одинаковы для всех подключаемых модулей. Название модуля и библиотеки следуют вышеописанным правилам. Параметр <literal +>X-KSplash-Default</literal +> может принимать одно из двух значений (true или false). Он определяет, будет ли этот модуль показан в Центре управления KDE. За исключением некоторых очень редких случаев, его значение должно быть <constant +>true</constant +>. </para> +</sect1> +<sect1 id="headerfile"> +<title +>Объявление класса подключаемого модуля</title> +<para +>Теперь, когда мы закончили подготовительную работу, начинается действительно интересная часть — создание класса, который обеспечивает нужное поведение модуля. Хотя мы вольны делать с этим классом всё, что хотим, существует несколько ограничений.</para> +<orderedlist> +<listitem +><para +>Классы модуля должны наследоваться от класса <constant +>ThemeEngine</constant +>.</para +></listitem> +<listitem +><para +>Классы модуля следует называть в соответствии с правилом: <classname +>Theme+название_модуля</classname +>.</para +></listitem> +<listitem +><para +>Классы модуля должны обеспечивать <literal +>статическую</literal +> функцию с названием <function +>names</function +>, которая возвращает список названий, под которыми она может быть задействована.</para +></listitem> +<listitem +><para +>Чтобы модуль можно было настраивать из Центра управления KDE, он должен включать класс, основанный на классе <literal +>ThemeEngineConfig</literal +>.</para +></listitem> +<listitem +><para +>Классы модуля должны перекрывать хотя бы одну из следующих виртуальных функций: <function +>slotSetText</function +>, <function +>slotSetPixmap</function +>, <function +>slotUpdateProgress</function +> и <function +>slotUpdateSteps</function +>, чтобы обеспечить возможность использования.</para +></listitem> +<listitem +><para +>Разработчик должен создать конструктор <literal +>ThemeEngine( QWidget *parent, const char *name, const QStringList &args )</literal +>, чтобы модуль можно было использовать из <classname +>KGenericFactory</classname +>.</para +></listitem> +</orderedlist> +<para +>Последнее требование может показаться сложным, но, как мы увидим позже, вы можете обычно игнорировать его, добавив одну строку к исходному коду.</para> +</sect1> +<sect1 id="headercode"> +<title +>Код файла заголовка</title> +<para +>Присвоив значения константам, мы увидим, что файл заголовков <filename +>theme2k.h</filename +> приобретёт вид вроде этого:</para> +<example> +<title +>Файл <filename +>theme2k.h</filename +></title> +<programlisting +>#ifndef __THEME2K_H__ +#define __THEME2K_H__ + +#include <qlabel.h> +#include <qwidget.h> + +#include <kdialogbase.h> +#include <kpixmap.h> +#include <ksplash/themeengine.h> + +class RotWidget; + +class Cfg2k: public ThemeEngineConfig +{ + Q_OBJECT +public: + Cfg2k( KConfig * ); +}; + +class ObjKsTheme; +class Theme2k: public ThemeEngine +{ + Q_OBJECT +public: + Theme2k( QWidget *, const char *, const QStringList& ); + + inline const QString name() + { + return( QString("KSplash2k") ); + } + inline const KDialogBase *config( KConfig *kc ) + { + return new Cfg2k( kc ); + } + static QStringList names() + { + QStringList Names; + Names << "KSplash2k"; + Names << "ks2k"; + Names << "2k"; + Names << "2000"; + return( Names ); + }; + +public slots: + inline void slotSetText( const QString& s ) + { + if( mText && mText->text() != s ) mText->setText( s ); + }; + +private: + void initUi(); + void readSettings(); + + QLabel *mText; + RotWidget *mRotator; + QColor mTBgColor, mTFgColor, mRotColor1, mRotColor2, mStatusColor; + int mRotSpeed; + QString mWndTitle, mLogoFile; +}; + +#endif +</programlisting> +</example> +<para +>Давайте проанализируем вышеприведённое. Класс <classname +>Theme2k</classname +>, унаследованный от <classname +>ThemeEngine</classname +> удовлетворяет объявлениям. Он обеспечивает метод <methodname +>Theme2k::names()</methodname +>, и имеет конструктор, который принимает необходимые параметры: <function +>Theme2k( QWidget *, const char *, const QStringList& );</function +>, и к тому же обеспечивает простой метод <methodname +>Theme2k::slotSetText()</methodname +>. На данном этапе вам не следует беспокоиться насчёт класса <classname +>RotWidget</classname +>. Это небольшой элемент графического интерфейса, который делает программу более наглядной для пользователя. Наш подключаемый модуль очень прост: он не показывает ни значков, ни индикатора загрузки. Если вы хотите использовать значки, перекройте функцию <function +>slotSetPixmap</function +>. Подобные функции есть для установки индикатора загрузки (<function +>slotUpdateSteps</function +>) и увеличения счётчика (<function +>slotUpdateProgress</function +>) текущего шага. </para> +</sect1> +<sect1 id="Implementation"> +<title +>Реализация подключаемого модуля</title> +<para +>Мы проверим только связанные части реализации. В приложении находится описание всей реализации. В первую очередь нам необходимо удовлетворить требованиям библиотеки:</para> +<example> +<title +>Требования библиотеки</title> +<programlisting +>K_EXPORT_COMPONENT_FACTORY( ksplash2k, KGenericFactory<Theme2k> ); +</programlisting> +</example> +<para +>Объявление макроса <constant +>K_EXPORT_COMPONENT_FACTORY</constant +> содержится в файле <filename +>kgenericfactory.h</filename +>. Теперь перейдём к конструктору. Так как подключаемый модуль совсем прост, конструктор тоже несложен.</para> +<example> +<title +>Конструктор подключаемого модуля</title> +<programlisting +>Theme2k::Theme2k( QWidget *parent, const char *name, const QStringList &args + ) + :ThemeEngine( parent, name, args ) +{ + readSettings(); + initUi(); +} +</programlisting> +</example> +<para +>Метод <function +>readSettings()</function +> является иллюстрацией подходящего способа получить параметры темы (вы ведь хотите, чтобы люди могли использовать ваш модуль для своих тем?)</para> +<example> +<title +>Получение параметров темы</title> +<programlisting +>void Theme2k::readSettings() +{ + if( !mTheme ) + return; + + KConfig *cfg = mTheme->themeConfig(); + if( !cfg ) + return; + + cfg->setGroup( QString("KSplash Theme: %1").arg(mTheme->theme()) ); + + QColor DefaultTBgColor( Qt::darkBlue ); + QColor DefaultTFgColor( Qt::white ); + + mTBgColor = cfg->readColorEntry( "Title Background Color", +&DefaultTBgColor ); + mTFgColor = cfg->readColorEntry( "Title Foreground Color", +&DefaultTFgColor ); + mStatusColor = cfg->readColorEntry("Status Text Color", &mTBgColor ); + + QColor DefaultRot1( Qt::darkBlue ); + QColor DefaultRot2( Qt::cyan ); + mRotColor1 = cfg->readColorEntry( "Rotator Color 1", &DefaultRot1 ); + mRotColor2 = cfg->readColorEntry( "Rotator Color 2", &DefaultRot2 ); + + mRotSpeed = cfg->readNumEntry( "Rotator Speed", 30 ); + mWndTitle = cfg->readEntry( "Window Title", i18n("Please wait...") ); + mLogoFile = cfg->readEntry( "Logo File", QString::null ); +} +</programlisting> +</example> +<para +>Так как мы работаем для пользователей, следует обеспечить подходящие параметры по умолчанию для параметров, которые не представлены в файле темы. Обратите внимание, что группу следует устанавливать следующим образом: "KSplash Theme: название_темы", чтобы обеспечить совместимость с будущими спецификациями темы. Метод <function +>initUI()</function +> не представляет большого интереса, он просто организует элементы графического интерфейса. Детали указаны в приложении. </para> +</sect1> +<sect1 id="compilingfile"> +<title +>Компиляция подключаемого модуля</title> +<para +>Для компиляции модуля мы решили использовать основу &kde;, поэтому необходимо создать файл <filename +>Makefile.am</filename +>. Он должен выглядеть следующим образом:</para> +<example> +<title +>Файл <filename +>Makefile.am</filename +></title> +<programlisting +>INCLUDES = $(all_includes) + +kde_module_LTLIBRARIES = ksplash2k.la + +ksplash2k_la_SOURCES = theme2k.cpp rotwidget.cpp +ksplash2k_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) +ksplash2k_la_LIBADD = $(LIB_TDEUI) -lksplashthemes + +METASOURCES = AUTO + +noinst_HEADERS = theme2k.h rotwidget.h + +servicesdir = $(kde_servicesdir) +services_DATA = ksplash2k.desktop + +themedir = $(kde_datadir)/ksplash/Themes/2k +theme_DATA = Theme.rc Preview.png +</programlisting> +</example> +<para +>Чтобы получить дальнейшую информацию по созданию <filename +>Makefile.am</filename +>, загляните на <ulink url="http://developer.kde.org/documentation/other/makefile_am_howto.html" +>веб-сайт</ulink +> разработчиков &kde;. Заметим, что мы создаём тему по умолчанию, основанную на этом модуле, и прилагаем к нему графический файл фона. В качестве жеста доброй воли по отношению к пользователям создайте файл <filename +>Theme.rc</filename +>, иллюстрирующий примеры использования различных параметров.</para> +</sect1> +</chapter> + +<chapter id="faq"> +<title +>Вопросы и ответы</title> +&reporting.bugs; &updating.documentation; <qandaset id="faqlist"> +<qandaentry> +<question> +<para +>Я не могу найти ни одной темы, которая работала бы с &ksplash;. Почему?</para> +</question> +<answer> +<para +>Возможно, у вас нет соответствующих подключаемых модулей для тем. Модули содержатся в пакете <literal +>tdeartwork</literal +>. Скачайте, установите его и попытайтесь запустить темы снова.</para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para +>Что такое файл <filename +>Theme.rc</filename +> и как его создать?</para> +</question> +<answer> +<para +><filename +>Theme.rc</filename +> — это файл, где вы можете задать параметры темы. Информация по нему находится в разделе <link linkend="themes" +>Как создавать темы для &ksplash;</link +>. </para> +</answer> +</qandaentry> +</qandaset> +</chapter> + +<chapter id="credits"> +<title +>Благодарности и лицензирование</title> + +<para +>&ksplash;</para> + +<para +>Программа: © &Ravikiran.Rajagopal; &Ravikiran.Rajagopal.mail;, 2003.</para> + +<itemizedlist> +<title +>Помощь в разработке</title> +<listitem +><para +>&Brian.C.Ledbetter; &Brian.C.Ledbetter.mail;</para> +</listitem> +</itemizedlist> + +<para +>Документация: © &Teemu.Rytilahti; &Teemu.Rytilahti.mail;, 2003.</para> +&underFDL; &underGPL; </chapter> + +<appendix id="installation"> +<title +>Установка</title> + +<sect1 id="requirements"> +<title +>Системные требования</title> + +<para +>Чтобы иметь возможность использовать возможности &ksplash; вам необходим &kde; версии 3.2 или выше. Если тема не работает, свяжитесь с её автором, чтобы выяснить, где можно взять подходящий подключаемый модуль.</para> + +</sect1> + +<sect1 id="compilation"> +<title +>Сборка и установка</title> +&install.compile.documentation; </sect1> +</appendix> +<appendix id="srccode"> +<title +>Исходные коды</title> +<sect1 id="theme2kcpp"> +<title +>Файл <filename +>theme2k.cpp</filename +></title> +<programlisting +>#include <qlabel.h> +#include <qwidget.h> + +#include <kapplication.h> +#include <kconfig.h> +#include <kdebug.h> +#include <kdialogbase.h> +#include <kgenericfactory.h> +#include <kglobalsettings.h> +#include <klocale.h> +#include <ksplash/objkstheme.h> +#include <kstandarddirs.h> + +#include "rotwidget.h" +#include "theme2k.h" +#include "theme2k.moc" + +K_EXPORT_COMPONENT_FACTORY( ksplash2k, KGenericFactory<Theme2k> ); + +Cfg2k::Cfg2k( KConfig * ) +{} + +Theme2k::Theme2k( QWidget *parent, const char *name, const QStringList &args + ) + :ThemeEngine( parent, name, args ) +{ + readSettings(); + initUi(); +} + +void Theme2k::initUi() +{ + QVBox *vbox = new QVBox( this ); + vbox->setFrameShape( QFrame::WinPanel ); + vbox->setFrameShadow( QFrame::Raised ); + + QHBox *labelBox = new QHBox( vbox ); + labelBox->setPalette( mTBgColor ); + labelBox->setMargin( 1 ); + QLabel *lbl = new QLabel( mWndTitle, labelBox ); + lbl->setFont( QFont( "Arial", 12, QFont::Bold ) ); + lbl->setPaletteForegroundColor( mTFgColor ); + + QLabel *logo = new QLabel( vbox ); + logo->setPalette( Qt::white ); + + QString px( locate( "appdata", mTheme->themeDir() + +(mLogoFile.isNull()?QString("/Logo.png"):mLogoFile) ) ); + if (px.isNull()) + px = locate("appdata","Themes/Default/splash_top.png"); + if( !px.isNull() ) + { + QPixmap pix( px ); + logo->setPixmap( pix ); + } + else + { + logo->setText( "<B>KDE</B>2000" ); + logo->setAlignment( AlignCenter|AlignVCenter ); + } + + mRotator = new RotWidget( vbox, mRotColor1, mRotColor2, mRotSpeed ); + + QHBox *hbox = new QHBox( vbox ); + labelBox->setSpacing( 4 ); + labelBox->setMargin( 4 ); + + mText = new QLabel( hbox ); + mText->setPaletteForegroundColor( mStatusColor ); + mText->setPaletteBackgroundColor( mTFgColor ); + mText->setText( mWndTitle ); + mText->setFixedHeight( 48 ); + + setFixedSize( vbox->sizeHint() ); + QRect rect(KGlobalSettings::splashScreenDesktopGeometry()); + move( rect.x() + (rect.width() - size().width())/2, + rect.y() + (rect.height() - size().height())/2 ); +} + +void Theme2k::readSettings() +{ + if( !mTheme ) + return; + + KConfig *cfg = mTheme->themeConfig(); + if( !cfg ) + return; + + cfg->setGroup( QString("KSplash Theme: %1").arg(mTheme->theme()) ); + + QColor DefaultTBgColor( Qt::darkBlue ); + QColor DefaultTFgColor( Qt::white ); + + mTBgColor = cfg->readColorEntry( "Title Background Color", +&DefaultTBgColor ); + mTFgColor = cfg->readColorEntry( "Title Foreground Color", +&DefaultTFgColor ); + mStatusColor = cfg->readColorEntry("Status Text Color", &mTBgColor ); + + QColor DefaultRot1( Qt::darkBlue ); + QColor DefaultRot2( Qt::cyan ); + mRotColor1 = cfg->readColorEntry( "Rotator Color 1", &DefaultRot1 ); + mRotColor2 = cfg->readColorEntry( "Rotator Color 2", &DefaultRot2 ); + + mRotSpeed = cfg->readNumEntry( "Rotator Speed", 30 ); + mWndTitle = cfg->readEntry( "Window Title", i18n("Please wait...") ); + mLogoFile = cfg->readEntry( "Logo File", QString::null ); +} +</programlisting> +</sect1> +<sect1 id="rotwidgeth"> +<title +>Файл <filename +>rotwidget.h</filename +></title> +<programlisting +>#ifndef __ROTWIDGET_H__ +#define __ROTWIDGET_H__ + +#include <qlabel.h> +#include <qtimer.h> +#include <qwidget.h> + +#include <kdialogbase.h> +#include <kpixmap.h> + +/** + * @short Display a rotating-gradient widget. + */ +class RotWidget: public QWidget +{ + Q_OBJECT +public: + RotWidget( QWidget *, const QColor&, const QColor&, int ); + ~RotWidget(); + +private slots: + void stepEvent(); + +protected: + void preparePixmap( int ); + void paintEvent( QPaintEvent * ); + void resizeEvent( QResizeEvent * ); + + QColor m_color1, m_color2; + int m_step, m_speed; + QTimer *m_stepTimer; + + QList<KPixmap> m_stepPixmap; +}; + +#endif +</programlisting> +</sect1> +<sect1 id="rotwidgetcpp"> +<title +>Файл <filename +>rotwidget.cpp</filename +></title> +<programlisting +>#include <kdebug.h> +#include <kdialogbase.h> +#include <kpixmapeffect.h> + +#include <qlabel.h> +#include <qpainter.h> +#include <qwidget.h> + +#include "rotwidget.h" +#include "rotwidget.moc" + +RotWidget::RotWidget( QWidget *parent, const QColor& c1, const QColor& +c2, int sp ) + :QWidget(parent), m_color1(c1), m_color2(c2), m_step(0), m_speed(sp) +{ + if( (m_speed <= 0) || (m_speed > 20) ) + m_speed = 1; + setFixedHeight( 6 ); + + for( int i = 0; i <= width(); i++ ) + preparePixmap( i ); + + m_stepTimer = new QTimer( this ); + connect(m_stepTimer, SIGNAL(timeout()), this, SLOT(stepEvent())); + m_stepTimer->start( 50 ); +} + +RotWidget::~RotWidget() +{ +} + +void RotWidget::stepEvent() +{ + // This is inefficient as we create too many pixmaps, optimize later. + m_step += m_speed; + if( m_step > width() ) + m_step = 0; + repaint( true ); +} + +// Todo: Optimize drawing. +void RotWidget::paintEvent( QPaintEvent *pe ) +{ + QPainter p; + p.begin( this ); + + QRect r = pe->rect(); + + if( m_stepPixmap.at( m_step ) ) + bitBlt( this, r.x(), r.y(), m_stepPixmap.at( m_step ), r.x(), r.y(), +r.width(), r.height() ); + else + p.fillRect( rect(), Qt::black ); + p.end(); +} + +void RotWidget::resizeEvent( QResizeEvent *re ) +{ + m_stepPixmap.clear(); + for( int i = 0; i <= re->size().width(); i++ ) + preparePixmap( i ); +} + +void RotWidget::preparePixmap( int step ) +{ + if( step < 0 ) + return; + + // Explicitly draw our first pixmap. The rest we will bitBlt() from here. + if( step == 0 ) + { + KPixmap tmp; tmp.resize( size().width() / 2, size().height() ); + KPixmap tmp2(tmp); + KPixmapEffect::gradient( tmp, m_color1, m_color2, +KPixmapEffect::HorizontalGradient ); + KPixmapEffect::gradient( tmp2, m_color2, m_color1, +KPixmapEffect::HorizontalGradient ); + KPixmap *px = new KPixmap( size() ); + QPainter p; + p.begin( px ); + p.drawPixmap( 0, 0, tmp ); + p.drawPixmap( size().width()/2, 0, tmp2 ); + p.end(); + m_stepPixmap.append( px ); + } + else if( m_stepPixmap.at( step-1 ) ) + { + QPixmap *prev = m_stepPixmap.at( step-1 ); + QPixmap next; next.resize( size() ); + // convert + // prev = "[------------]" + // to + // next = "------------][" + bitBlt( &next, 0, 0, prev, 1, 0, prev->width()-1, prev->height() +); + bitBlt( &next, width()-1, 0, prev, 0, 0, 1, prev->height() ); + KPixmap *n = new KPixmap( next ); + m_stepPixmap.append( n ); + } +} +</programlisting> +</sect1> +</appendix> + +&documentation.index; +</book> + +<!-- +Local Variables: +mode: xml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: + +vim:tabstop=2:shiftwidth=2:expandtab +--> |